[英]DJANGO - reverse accessor for profile.user clashes with reverse accessor for same field?
我收到以下錯誤:
dsapi.Profile.user: (fields.E304) Reverse accessor for 'Profile.user' clashes with reverse accessor for 'Profile.user'.
HINT: Add or change a related_name argument to the definition for 'Profile.user' or 'Profile.user'.
dsapi.Profile.user: (fields.E305) Reverse query name for 'Profile.user' clashes with reverse query name for 'Profile.user'.
我的所有研究都表明可以為每個問題創建一個related_name
。 但就我而言,它告訴我反向訪問器本身存在問題。 有人在這里有什么想法嗎? 下面是我的 models.py 文件中有問題的代碼。
import uuid
from django.db import models
from django.contrib.auth.models import User
from django.db.models.signals import post_save
from django.dispatch import receiver
class DsapiModel(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
created_at = models.DateTimeField(auto_now_add=True, editable=False)
updated_at = models.DateTimeField(auto_now=True, editable=False)
class Meta:
abstract = True
class Profile(DsapiModel):
"""
Extend User model using one-to-one link
Save a query using users = User.objects.all().select_related('profile')
"""
user = models.OneToOneField(User, on_delete=models.CASCADE)
favorite_sites = models.ManyToManyField(Site)
def __str__(self):
return self.user.username
@receiver(post_save, sender=User)
def create_user_profile(sender, instance, created, **kwargs):
if created:
Profile.objects.create(user=instance)
@receiver(post_save, sender=User)
def save_user_profile(sender, instance, **kwargs):
instance.profile.save()
該錯誤表明您的項目中存在多個Profile <-> User
關系。
任意,您可以在它們之間建立盡可能多的關系,但是,它們的related_name
必須不同。
這是一篇可以幫助您了解related_name
的SO帖子
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.