Получение ошибки 'ClassAssignment' объект не имеет атрибута 'assignmentfileupload'
Модели, которые я использую, следующие
class ClassAssignment(models.Model) :
classroom = models.ForeignKey(Classroom, on_delete=models.CASCADE)
title = models.CharField(max_length=300, blank=False, null=False)
instructions = models.TextField(blank=True, null=True)
completed = models.ManyToManyField(User)
due_date = models.DateTimeField(blank=True, null=True)
created_on = models.DateTimeField(default=datetime.now())
def __str__(self) -> str :
return self.title
class AssignmentFileUpload(models.Model) :
assignment = models.ForeignKey(ClassAssignment, on_delete=models.CASCADE)
attachment = models.FileField(upload_to="assignment_uploads/")
created_on = models.DateTimeField(default=datetime.now())
def __str__(self) -> str :
return self.assignment.title
def delete(self, *args, **kwargs) :
self.attachment.delete(save=False)
return super().delete(*args, **kwargs)
Код для сериализатора
class AssignmentSerializer(serializers.ModelSerializer) :
assignmentfileupload = serializers.HyperlinkedRelatedField(
view_name='file_uploads',
many=True,
read_only = True
)
class Meta :
model = ClassAssignment
fields = (
'id',
'classroom',
'title',
'instructions',
'due_date',
'created_on',
'assignmentfileupload'
)
Я не могу понять, где я делаю неправильно. Даже в документации написано то же самое, и я следовал этому, но это не работает так, как ожидалось.
Я сделал эти изменения и теперь он работает Может кто-нибудь объяснить, что пошло не так раньше? Скриншот кода
Согласно документам
view_name - Имя представления, которое должно использоваться в качестве цели отношения. Если вы используете стандартные классы маршрутизатора, это будет строка с форматом -detail. required.
.
Таким образом, вы должны представить view_name
в виде AssignmentFileUpload-detail