从模型1到模型2的模板标签,该标签具有对模型1的外键

时间:2019-01-28 10:49:40

标签: django django-models django-views

是否存在模板标签或从主模型转到具有主模型外键的特定模型的方法?

models.py

class BillingAddress(models.Model):
    user = models.ForeignKey(UserCart, on_delete=models.CASCADE)
    address1 = models.CharField(max_length=120, null=True)

class HomeAddress(models.Model):
    user = models.ForeignKey(UserCart, on_delete=models.CASCADE)
    address1 = models.CharField(max_length=120, null=True)

class UserCart(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE, default=None) 

我想从BillingAddress获取与用户购物车相关的'address1'字段。我认为我不能使用{{usercart.address1}},因为HomeAddress和BillingAddress都有一个名为address1的字段,并且与usercart相关。

谢谢!

1 个答案:

答案 0 :(得分:2)

别担心,您可以正常获得它。因为BillingAddressHomeAddress FK到UserCart。这意味着从UserCart开始,您有2套不同的商品分别是usercart.billingaddress_setusercart.homeaddress_set。这是与BillingAddress相关的HomeAddressUserCart的2个列表。

如果要获得一个address1字段。您必须知道要获取什么set。像示例一样:usercart.billingaddress_set.first().address1将为您提供与BillingAddress相关的UserCart的第一条记录。

如果仍然担心,可以将billingaddress_set的名称homeaddress_setrelated_name更改为所需的任何名称。阅读related_name了解更多信息