আমি একটা রেজাল্টের জন্য ওয়েব এপ্লিকেশন নিয়ে কাজ করছি। আমি AddResult এর জন্য একটি মডেল ফরম তৈরি করেছি। আমার AddResult মডেলে অনেকগুলো মডেল ফরেনকি দেওয়া। আমি যখন ফরমে MainSubject সিলেক্ট করি তখন তৈরি করা সবগুলো অবজেক্ট চলে আসে, কিন্তু আমি চাচ্ছি আমি MainSubject সিলেক্ট করবো, তখন শুধুমাত্র MainSubject অন্তভুক্ত যেগুলো SubjectName তৈরি করেছি শুধুমাত্র সেগুলো আসবে।

যদিও আমি SubjectNameকে SubjectPart এর সাথে ফরেনকিSubjectPart কে MainSubject এর সাথে ফরেনকি করে দিয়েছি।

আবার যখন ঐ Subject আসবে তখন ঐ SubjectName এর আন্ডারে যেগুলোর SubjectPart আছে শুধুমাত্র সেগুলো আসবে। মানেঃ আমি যদি MainSubject হিসাবে Bangla সিলেক্ট করি তাহলে SubjectName এ শুধুমাত্র Bangla First PartBangla 2nd Part দেখাবে। আবার যদি আমি SubjectNameBangla First Part সিলেক্ট করি তাহলে শুধুমাত্র তার আন্ডারে যে অবজেক্টগুলো তৈরি করেছি সেগুলো দেখাবে। এটা কিভাবে ইমপ্লিমেন্ট করতে পারি?

alt text

নিচে আমার models.py ফাইলটি দেয়া হলো।

class Student(models.Model):
    std_name=models.CharField('Student Name ', max_length=200)
    CLASS_NAME=(
        ('6','SIX'),
        ('7','SEVEN'),
        ('8','Eight'),
        ('9','Nine'),
        ('10','Ten'),
        ('Ex-10','EX-Ten'),
    )
    std_class_name=models.CharField('Class Name', max_length=7, choices=CLASS_NAME)
    std_roll_number=models.IntegerField('Roll Number')
    GENDER=(
        ('Male','Male'),
        ('Female','Female'),
    )
    std_gender=models.CharField('Gender', max_length=7, choices=GENDER)
    GROUP=(
        ('Science','Science Group'),
        ('B.Studies','Business Group'),
        ('Arts and Humatics','Arts and Humatics'),
        ('General','General'),
    )
    std_group=models.CharField('Group', max_length=17, choices=GROUP)
    pub_date = models.DateTimeField('Published', auto_now_add=True)
    std_total_subject=models.IntegerField('Total Subject', default=0)


    def __str__(self):
        return self.std_name



class ExaminationName(models.Model):
    examination_name=models.CharField('Examination Name ', max_length=100)
    exam_date=models.DateTimeField('Exam Date: ')
    pub_date = models.DateTimeField('Published', auto_now_add=True)


    def __str__(self):
        return self.examination_name

class MainSubject(models.Model):
    main_subject_name = models.CharField('Main Subject Name', max_length=100)
    main_subject_code=models.DecimalField('Main Subject Code', decimal_places=0, default=0, max_digits=10)
    subject_full_marks = models.DecimalField('Subject Full Marks', max_digits=6, decimal_places=0, default=100)
    pub_date = models.DateTimeField('Published', auto_now_add=True)

    def __str__(self):
        return self.main_subject_name



class SubjectName(models.Model):
    mainsubject = models.ForeignKey(MainSubject, on_delete=models.CASCADE)
    subject_name=models.CharField('Subject Name', max_length=100)
    subject_full_marks=models.DecimalField('Subject Full Marks',max_digits=6, decimal_places=0, default=100)
    pub_date = models.DateTimeField('Published', auto_now_add=True)

    subject_gpa_point=models.DecimalField('GPA in Subject',max_digits=4, decimal_places=2, default=0)
    subject_gpa_grade=models.CharField('GPA Grade',max_length=5, default='F')


    def __str__(self):
        return self.subject_name


class SubjectPart(models.Model):
    mainsubject = models.ForeignKey(MainSubject, on_delete=models.CASCADE)
    subjectname = models.ForeignKey(SubjectName, on_delete=models.CASCADE)
    subject_part_name=models.CharField('Subject Part', max_length=100)
    subject_part_full_marks = models.DecimalField('Full Marks', max_digits=6, decimal_places=0, default=100)
    subject_part_pass_marks = models.DecimalField('Pass Marks', max_digits=6, decimal_places=0, default=100)
    pub_date = models.DateTimeField('Published', auto_now_add=True)


    def __str__(self):
        return self.subject_part_name






class AddResult(models.Model):
    student=models.ForeignKey(Student, on_delete=models.CASCADE)
    examinationname = models.ForeignKey(ExaminationName, on_delete=models.CASCADE)
    mainsubject_name = models.ForeignKey(MainSubject, on_delete=models.CASCADE)
    subjectname = models.ForeignKey(SubjectName, on_delete=models.CASCADE)
    subjectpart = models.ForeignKey(SubjectPart, on_delete=models.CASCADE)
    subject_number=models.DecimalField('Subject Number', max_digits=6, decimal_places=0)
    pub_date = models.DateTimeField('Published', auto_now_add=True)


    def __str__(self):
        return str(self.subjectpart)

    def fail_sub(self):
        if self.subject_number < self.subjectpart.subject_part_pass_marks:
            return 'F'

asked 05 Nov, 07:40

Asaduzzaman%20Sohel's gravatar image

Asaduzzaman Sohel
18610

edited 05 Nov, 12:17

Be the first one to answer this question!
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:

×66
×28
×20
×7
×3

question asked: 05 Nov, 07:40

question was seen: 46 times

last updated: 05 Nov, 12:17