Реализация функции модели Django для автоматической инициализации значения определенного поля
Мне нужно написать функцию модели Django
для вычисления значения существующего поля.
мой models.py
:
class questionNumeric(models.Model):
question = models.TextField()
marks = models.IntegerField()
correctAns = models.FloatField()
class questionTureFalse(models.Model):
question = models.TextField()
marks = models.IntegerField()
correctAns = models.BooleanField()
class questionSet(models.Model):
examName = models.CharField(max_length=200)
questionNumeric = models.ManyToManyField(questionNumeric)
questionTureFalse = models.ManyToManyField(questionTureFalse)
totalMarks = models.IntegerField(default=0)
Как вы можете видеть здесь, каждый объект questionNumeric
или questionTureFalse
имеет определенные marks
. Теперь я хочу установить поле questionSet
объекта totalMarks
с суммой оценок, которые несут все questionNumeric
или questionTureFalse
под этим questionSet
объектом.
Как написать функцию Django Model под questionSet
для автоматической инициализации totalMarks
?
Вы можете объявить функцию в questionSet
и вернуть счетчик отношений. Например, что-либо вроде:
class QuestionSet(models.Model):
...
def get_question_numeric_count(self):
return self.questionNumeric.count()