Django 模型无法使用 Serialiser Class 通用视图识别模型字段

Django Model not recognising model fields using Serialiser Class Generic Views

我试图从 Django 模型中获取模板列表,但我总是遇到错误。 以下是每当我尝试检索作业模板列表时出现的错误。我收到此错误是因为它无法识别字段 template_name.

AttributeError: Got AttributeError when attempting to get a value for field template_name on serializer ListJobTemplateSerializer. | The serializer field might be named incorrectly and not match any attribute or key on the Job instance. | Original exception text was: '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。

可以帮助您查询集的参考文档:https://docs.djangoproject.com/en/3.2/ref/models/querysets/