требуется аргумент related_name - PullRequest
0 голосов
/ 05 октября 2019

Я получил следующую ошибку, и я не уверен, как с ней справиться.

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)

1 Ответ

1 голос
/ 05 октября 2019

Это здесь необходимо, поскольку у вас есть две ссылки от UserCart до Tax модели. Таким образом, это означает, что обратное отношение (от 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,
        <b>related_name='state_usercarts'</b>,
        on_delete=models.SET_NULL,
        null=True
    )
    fed_tax = models.ForeignKey(
        Tax,
        <b>related_name='fed_usercarts'</b>,
        on_delete=models.SET_NULL,
        null=True
    )

Примечание : вы можете использовать get_user_model [Django-doc] по ссылке на User. Если вы позже измените свою пользовательскую модель, ForeignKey автоматически будет ссылаться на новую пользовательскую модель.

...