#python #django
#python #django
Вопрос:
Я использую Django2 и sqlite в Windows 10 для веб-сайта управления курсами.
когда я попытался запросить базу данных в view.py использование
query_results_3 = CourseInfo.objects.values('title', code=course_code[:5])
возникает ошибка:
ValueError: The annotation 'code' conflicts with a field on the model.
model.py:
class CourseInfo(TimeStampedModel): # school or center
code = models.CharField(max_length=20, unique=True, db_index=True)
title = models.CharField(max_length=200)
school = models.ForeignKey(School, on_delete=models.SET_NULL, blank=True, null=True)
postgraduate = models.BooleanField(default=False) # indicate Postgraduate course
discipline = models.ForeignKey(Discipline, on_delete=models.SET_NULL, blank=True, null=True) # should not be null
pattern = models.CharField(max_length=120, choices=PRESENTATION_PATTERN, blank=True, null=True,
help_text="Presentation Pattern")
type = models.CharField(max_length=2, choices=(('PT', 'Part-Time'), ('FT', 'Full-Time'), ('OL', 'Online')))
available = models.BooleanField(default=True) # mean Active or Retired
semesters = models.ManyToManyField('Semester', through="Course") # auto have semestercourse_set
def __str__(self):
return "{} - {}".format(self.code, self.title)
class Meta:
constraints = [models.UniqueConstraint(fields=['code', 'type'], condition=models.Q(available=True),
name='unique_course_type')]
ordering = ['code', ]
Как изменить мой код, чтобы ошибка исчезла?
Комментарии:
1. Вы пытаетесь выполнить фильтрацию
code
? Если это так,filter
сначала используйте метод перед получениемvalues
.
Ответ №1:
Вы должны сделать:
query_results_3 = CourseInfo.objects.filter(code=YOUR_CONDITION).values('title')
Комментарии:
1. как изменить <QuerySet [<Курс: BME108_JUL2020>]> на ‘BME108’?