【发布时间】:2020-04-03 09:43:21
【问题描述】:
在我的 web 应用中,我有一个好友功能,但是其中一个 if 语句会产生错误
这是我的 UserProfileInfo 模型
class UserProfileInfo(models.Model):
connection = models.ManyToManyField(User,blank=True,related_name='follow_profile')
现在这是我的观点:
def friend_actions(request,username=None):
current_user = request.user.userprofileinfo
user = request.user
# username = get("username")
username = User.objects.get(username=username)
other_user = get_object_or_404(UserProfileInfo,user__username=username)
# other_user = UserProfileInfo.objects.get(username=username)
url = other_user.get_absolute_url()
if other_user in current_user.connection.all():
current_user.connection.remove(other_user)
else:
current_user.connection.add(other_user)
return HttpResponseRedirect(url)
但是,这会产生以下错误:
'QuerySet' 类型的参数不可迭代
完整的追溯
Traceback:
File "C:\Users\User\.virtualenvs\interests-site-Ho6yLlHE\lib\site-packages\django\core\handlers\exception.py" in inner
34. response = get_response(request)
File "C:\Users\User\.virtualenvs\interests-site-Ho6yLlHE\lib\site-packages\django\core\handlers\base.py" in _get_response
115. response = self.process_exception_by_middleware(e, request)
File "C:\Users\User\.virtualenvs\interests-site-Ho6yLlHE\lib\site-packages\django\core\handlers\base.py" in _get_response
113. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\User\interests-site\interests-drf\mainapp\views.py" in friend_actions
453. if other_user in current_user.connection.all():
Exception Type: TypeError at /mainapp/profile/donnellan0007/connect/
Exception Value: argument of type 'QuerySet' is not iterable
我想知道如何阻止此错误的发生。我整天都被它难住了
【问题讨论】:
-
用
current_user.connection.filter(<your condition>).exists()之类的查询替换in检查
标签: python django python-3.x django-models django-views