Ребята, я новичок в Django и изучаю его документы и YouTube. Но я не могу найти ответ на мои c вопросы, так как я уверен, что я делаю ошибку в своем коде.
models.py
class Profiles(models.Model):
name=models.CharField(max_length=200)
surname=models.CharField(max_length=200)
class Meta:
db_table='profiles'
class Year20(models.Model):
name=models.CharField(max_length=200)
profiless=models.ManyToManyField(Profiles)
math=models.DecimalField(decimal_places=2,max_digits=1000)
english=models.DecimalField(decimal_places=2,max_digits=1000)
class Meta:
db_table='year20'
class Year19(models.Model):
name=models.CharField(max_length=200)
profiless=models.ManyToManyField(Profiles)
math=models.DecimalField(decimal_places=2,max_digits=1000)
english=models.DecimalField(decimal_places=2,max_digits=1000)
class Meta:
db_table='year19'
class Faculty(models.Model):
name=models.CharField(max_length=200)
profiless=models.ManyToManyField(Profiles)
acting=models.DecimalField(decimal_places=2,max_digits=1000)
class Meta:
db_table='faculty'
У меня есть 2 вопроса:
Когда я делаю правильную оценку ManytoMany
модель таким образом? Profiles
модель относится ко всем таблицам, так как содержит их имя и фамилию.
Как отфильтровать значения из нескольких таблиц, провести расчет и назначить условие? I assigned ManytoMany model to each table in hope be able to make calculations using variables form different tables.
Я не хочу, чтобы вы думали, что я спрашиваю без исследования и попытки. Что я мог сделать, это фильтрация и расчет только из 1 таблицы.
score_merit=Year19.objects.annotate(
final_grade=F('math') / F('english')).filter(final_grade__gt=61,)
Однако я хочу получить итоговый балл:
math_avrg=(year19.math+year20.math)/2
eng_avrg=(year19.eng+year20.eng)/2
final_score=(math_avrg+eng_avrg+acting)/3
и, наконец, напечатать имя и фамилию студента, где final_score > 70
Я хочу учиться как объединить значения из разных таблиц и произвести расчеты и, наконец, выполнить фильтрацию по условиям и напечатать их имена и фамилии.
Я был бы признателен, если бы вы могли поделиться некоторым кодом и направить меня, который было бы намного проще понять и изучить.