Django models 属性错误:';通用外键&x27;对象没有属性';空';
当我在持有通用外键的模型上尝试任何方法(删除、保存等)时,我会遇到一个非常奇怪的错误。我的模型可以容纳不同类型的卡,以及处理这些卡的作业:Django models 属性错误:';通用外键&x27;对象没有属性';空';,django-models,attributeerror,generic-foreign-key,Django Models,Attributeerror,Generic Foreign Key,当我在持有通用外键的模型上尝试任何方法(删除、保存等)时,我会遇到一个非常奇怪的错误。我的模型可以容纳不同类型的卡,以及处理这些卡的作业: class JobCards(models.Model): class Meta: unique_together = ('content_type', 'object_id') content_type = models.ForeignKey( ContentType, on_delete
class JobCards(models.Model):
class Meta:
unique_together = ('content_type', 'object_id')
content_type = models.ForeignKey(
ContentType,
on_delete=models.CASCADE,
help_text=_('Card type')
)
object_id = models.PositiveIntegerField(
help_text=_('Card id')
)
content_object = GenericForeignKey()
job = models.ForeignKey(
Job,
on_delete=models.CASCADE
)
因此,我们采取了以下行动:
JobCards.objects.create(content_object=card, job=job)
或
会因为这样的错误而失败
我应该提到的是,我在卡片模型中添加了两个通用关系,但即使删除它们也不会改变最终结果:
job_cards = GenericRelation(JobCards, related_query_name='card')
解决了。
把这个留在这里,以防有人遇到同样的问题。这个问题与项目有关,与Django无关。
我所使用的ContentType模型需要一个特定的字段,并且不知怎么的,有一个通用外键丢失了(而普通外键似乎没问题)。
将其添加为模型的属性实现了以下目的:
@property
def required_field(self):
return self.content_object.some_linked_model.required_field
解决了。
把这个留在这里,以防有人遇到同样的问题。这个问题与项目有关,与Django无关。
我所使用的ContentType模型需要一个特定的字段,并且不知怎么的,有一个通用外键丢失了(而普通外键似乎没问题)。
将其添加为模型的属性实现了以下目的:
@property
def required_field(self):
return self.content_object.some_linked_model.required_field