Django如何添加一个实例来反转ForeignKey

时间:2016-05-20 11:44:53

标签: python django

我有2个班级:

class Contact(models.Model):
    name = model.CharField(max_length=255)

class PhoneNumber(models.Model):
    phone = models.CharField(max_length=25)
    contact = models.ForeignKey(Contact, related_name="phone_numbers", null=True, blank=True)

如果我想获得联系人的电话号码,我可以这样做:

contact = Contact.objects.all()[0]
contact_phones = contact.phone_numbers.all()

这里没有汗水。 现在我想知道为联系人设置新电话号码的正确方法。

我试过这样做:

foo = Contact.objects.create(name="Foo")
contact_phone = PhoneNumber.objects.create(phone="123456789", contact=foo)

这确实保存了联系人和电话号码,但我希望能够在Contact类中创建一个方法,如add_phone()或类似的东西。

我怎么能这样做?

1 个答案:

答案 0 :(得分:3)

您可以使用反向管理器的create方法。

foo.phone_numbers.create(phone='123456789')