Django 属性错误位于/profile/chandan';元组';对象没有属性';另一个用户';
我试图让跟踪系统工作,但它就是不工作Django 属性错误位于/profile/chandan';元组';对象没有属性';另一个用户';,django,Django,我试图让跟踪系统工作,但它就是不工作 class Followers(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE) another_user = models.ManyToManyField(User, related_name='another_user') def __str__(self): return self.user.name
class Followers(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
another_user = models.ManyToManyField(User, related_name='another_user')
def __str__(self):
return self.user.name
def profile(request, user_name):
user_obj = User.objects.get(username=user_name)
session_user, create = User.objects.get(username=user_name)
session_following, create = Followers.objects.get_or_create(user=session_user)
following = Followers.objects.get_or_create(user=session_user.id)
check_user_followers = Followers.objects.filter(another_user=user_obj)
is_followed = False
if session_following.another_user.filter(username=user_name).exists() or following.another_user.filter(username=user_name).exists():
is_followed=True
else:
is_followed=False
param = {'user_obj': user_obj,'followers':check_user_followers, 'following': following,'is_followed':is_followed}
if 'user' in request.session:
return render(request, 'users/profile2.html', param)
else:
return redirect('index')
我得到一个错误:
AttributeError at /profile/chandan
'tuple' object has no attribute 'another_user'
返回一个2元组,第一项为对象,第二项为布尔值,指示对象是已创建(True
),还是已存在于数据库中
您可以使用iterable unpacking将布尔值设置为“一次性”变量:
# ↓ throw away the second item of the 2-tuple
session_following, __ = Followers.objects.get_or_create(user=session_user)
following, __ = Followers.objects.get_or_create(user=session_user)
#↓扔掉2元组的第二项
session\u following,\u\u=Followers.objects.get\u或\u create(user=session\u user)
下面是,\uuuuu=Followers.objects.get\u或\u create(user=session\u user)
这条下划线是干什么的?@sly\u Chandan:这只是一个变量,我们用来解包元组,并将第一个项目分配给后面的会话,第二个项目分配给\uuuuu
,因此,\uuu
在这里是一个特殊变量,我们需要解包2元组。无法解包不可编辑的用户object@sly_Chandan:您应该只对.get\u或\u create
执行此操作,而不是对.get(…)
执行此操作。我得到的是元组错误“tuple”对象没有“其他用户”属性