我已经收到以下错误,并且不确定在模型中如何处理。
HINT: Add or change a related_name argument to the definition for 'UserCart.state_tax' or 'UserCart.fed_tax'.
userorders.UserCart.state_tax: (fields.E304) Reverse accessor for 'UserCart.state_tax' clashes with reverse accessor for 'UserCart.other_tax'.
models.py
class UserCart(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE, default=None)
state_tax = models.ForeignKey(Tax, on_delete=models.SET_NULL, null=True)
fed_tax = models.ForeignKey(Tax, on_delete=models.SET_NULL, null=True)
这是必要的,因为您有从UserCart
到Tax
模型的two引用。因此,这意味着反向关系(从Tax
到UserCart
)不能为usercart_set
,因为这样我们不清楚反向使用哪个关系。
因此,我们至少应为一种关系指定一个相关名称(与usercart_set
不同)。例如:
from django.contrib.auth import get_user_model
class UserCart(models.Model):
user = models.ForeignKey(get_user_model(), on_delete=models.CASCADE, default=None)
state_tax = models.ForeignKey(
Tax,
related_name='state_usercarts',
on_delete=models.SET_NULL,
null=True
)
fed_tax = models.ForeignKey(
Tax,
related_name='fed_usercarts',
on_delete=models.SET_NULL,
null=True
)
Note:您可能想通过
get_user_model
[Django-doc]本身来使用get_user_model
。如果以后更改用户模型,则User
将自动引用新的用户模型。