是否可以添加self
- 我的意思是當前對象是ManyToManyField
?默認情況下如何將自我添加到ManyToManyField?
class City(models.Model):
name = models.CharField(max_length=80)
country = models.ForeignKey('Country')
close_cities = models.ManyToManyField('City',blank=True, related_name='close_cities_set')
如果我創建讓我們說x = City.objects.create(...)
,我想x
是默認的close_cities
的一部分。
我找不到與此問題相關的任何內容。我試圖覆蓋create()
方法,但它沒有奏效。
嘗試之後,我決定創建一個信號,在創建實例後添加城市。不幸的是,這不起作用,但我不明白爲什麼。正在調用信號,條件if created
是True
(選中)。
@receiver(post_save,sender=myapp_models.City)
def add_self_into_many_to_many_field(sender, instance, created, **kwargs):
if created:
instance.close_cities.add(instance)
instance.save()
你知道問題在哪裏嗎?
如果我瞭解你,你想要將City'x'作爲'close_city'添加到自身? –
是的。 x是城市。我希望x是x.close_cities的一部分 –
如果你想要一個表與自己有多對多的關係,你可能會有錯誤的設計。 – e4c5