Mel*_*art 2 python django django-models
我有以下用户对象,
class User(AbstractBaseUser, PermissionsMixin, Base):
username = models.CharField(
db_index=True,
null=False,
unique=True,
max_length=255,
)
mobile = PhoneNumberField(
db_index=True,
null=False,
unique=True,
)
is_staff = models.BooleanField(default=False)
is_superuser = models.BooleanField(default=False)
is_active = models.BooleanField(default=False)
Run Code Online (Sandbox Code Playgroud)
我有以下课程来管理连接,
class Connections(Base):
owner = models.OneToOneField(
User,
on_delete=models.CASCADE,
null=True,
)
friends = models.ForeignKey(
User,
on_delete=models.CASCADE,
related_name='friend_set',
null=True,
blank=True,
)
followers = models.ForeignKey(
User,
on_delete=models.CASCADE,
related_name='follower_set',
null=True,
blank=True,
)
followings = models.ForeignKey(
User,
on_delete=models.CASCADE,
related_name='following_set',
null=True,
blank=True,
)
Run Code Online (Sandbox Code Playgroud)
当我尝试添加好友时,
sender = User.objects.get(
id=kwargs.get('sender_id')
)
receiver = User.objects.get(
id=kwargs.get('receiver_id')
)
sender_connections, created =(
Connections.objects.get_or_create(owner=sender)
)
sender_connections.friends.add(receiver)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误,
'NoneType' object has no attribute 'add'
Run Code Online (Sandbox Code Playgroud)
有人可以帮我弄这个吗?
小智 5
看来您正在尝试使用django 相关管理器添加功能
sender_connections.friends.add(receiver)
然而,连接上的friends属性是ForeignKey关系而不是ManyToManyField。这意味着当您调用sender_connections.friends
并且连接不存在时,您将得到 None。
如果将属性更改为 ManyToManyField,则将sender_connections.friends
返回 ManyRelatedManager 并且添加应该按预期工作。
归档时间: |
|
查看次数: |
1929 次 |
最近记录: |