Python Django下表
我如何修改代码,使登录的用户无法跟随自己。我试着和你在一起,但没能成功 我将使用其他用户配置文件页面上的按钮将用户添加到此表中的登录用户列表中Python Django下表,python,django,django-models,Python,Django,Django Models,我如何修改代码,使登录的用户无法跟随自己。我试着和你在一起,但没能成功 我将使用其他用户配置文件页面上的按钮将用户添加到此表中的登录用户列表中 class FollowList(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True) following = models.ManyToManyField(User, related_name='follo
class FollowList(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True)
following = models.ManyToManyField(User, related_name='followers')
我建议你使用类似中间模型的东西。实际上,许多模型都有两个外键字段:第一个用于
FollowList
模型,第二个用于链接用户
实例。所以你和你的模特有一个额外的关系。更好的方法:
class Follow(models.Model):
follower = models.ForeignKey(User, on_delete=models.CASCADE, related_name='my_following_users')
following = models.ForeignKey(User, on_delete=models.CASCADE, related_name='my_followers')
class Meta:
unique_together = (
('follower', 'following'),
)
def save(self, *args, **kwargs):
if self.follower.pk != self.following.pk: # preventing of following themselves
return super().save(*args, **kwargs)
# use like this
dev YourView():
Follow.objects.create(follower=request.user, following=user)
UPD:
如果需要使用一次请求设置多个关注者,请执行以下操作:
dev YourView():
items = []
for uid in ("<user ids here>"):
items.append(Follow(follower=request.user, following__pk=uid))
Follow.objects.bulk_create(items)
dev YourView():
项目=[]
对于“”中的uid:
items.append(Follow(follower=request.user,follower\u pk=uid))
Follow.objects.bulk\u创建(项目)
谢谢,我稍后再试。因此,我将从按钮调用yourview函数?我将如何修改它,以便为follow对象选择多个follow用户yourview
只是一个示例,如何使用follow
模型。你应该在你需要的任何地方创建一个Follow
实例。我在我的帖子中举了一个小例子来说明你的问题。这是你的情况吗?嗨,我的意思是,假设用户访问一个用户页面并跟踪他们,然后创建跟踪对象。然后用户访问另一个用户页面并跟踪他们。如何将其添加到用户已经拥有的follow对象中。