Django Model не распознает поля модели при использовании Serialiser Class Generic Views
Я пытаюсь получить список шаблонов из модели Django, но всегда получаю ошибку. Ниже приведена ошибка, когда я пытаюсь получить список шаблонов заданий. Я получаю эту ошибку, потому что она не распознает поле template_name.
AttributeError: Получена ошибка AttributeError при попытке получить значение для поля
template_name
на сериализатореListJobTemplateSerializer
. | Поле сериализатора может быть названо неверно и не совпадать с атрибутом или ключом экземпляраJob
. | Оригинальный текст исключения был: 'Job' object has no attribute 'template_name'.
Модель работы:
class Job (Dates, ID):
name = models.CharField(max_length=255, validators=[name_validation])
is_remote = models.BooleanField(default=False)
company = models.ForeignKey(to="companies.company", related_name="%(class)s", on_delete=models.CASCADE)
Шаблон модели:
class JobTemplate(Dates, ID):
template_name = models.CharField(max_length=255)
jobs = models.ForeignKey(to="jobs.Job", related_name="%(class)s", on_delete=models.CASCADE)
objects = BulkUpdateOrCreateQuerySet.as_manager()
class Meta:
db_table = 'job_template'
def __str__(self):
return name
class ListJobTemplateSerializer(serializers.ModelSerializer):
"""List all templates of a job."""
job_title = serializers.CharField(source="name")
class Meta:
model = JobTemplate
fields = ["id", "job_title", "template_name"]
Проблема с вашим кодом заключается в том, что вы, должно быть, делаете некоторые ошибки в ваших представлениях. Нет никаких проблем с вашей моделью и с вашим сериализатором, все в порядке. Поскольку предоставлено недостаточно информации, возможная проблема заключается в наборе запросов, поскольку ваш набор запросов получает объект Job, а не объект JobTemplate, вам нужно переделать ваш набор запросов для получения JobTemplate.
Справочный документ, который может помочь вам с queryset: https://docs.djangoproject.com/en/3.2/ref/models/querysets/