【发布时间】:2021-04-09 03:58:10
【问题描述】:
我已经在 Property 和 ListingDetail 模型之间建立了 OtoO 关系:
class Property(models.Model):
.
.
.
def __str__(self):
return "Property " + str(self.pk)
ListingDetail模型:
class ListingDetial(models.Model):
property = models.OneToOneField("properties.Property", on_delete=models.CASCADE)
.
.
.
现在我不想手动选择 LocationDetail 模型中的 property 字段,而是想自动保存它。
目前我已经使用 post_save 信号来实现功能:
@receiver(post_save, sender=Property)
def ensure_sub_section_model_exists(sender, **kwargs):
if kwargs.get('created', False):
ListingDetial.objects.get_or_create(property=kwargs.get('instance'))
但是这种方法的问题是每次创建 Property 实例时都会创建一个 ListingDetail,这种方法的唯一问题是我需要保持所有字段都可以为空。 我想要的是在我创建ListingModel之后,属性存储的值与ListingModel的PK相同。
【问题讨论】:
标签: django django-models django-signals