mun*_*ntu 1 django django-context
我有一个上下文处理器返回用户朋友列表。我希望它仅在用户登录时返回朋友的字典,因为目前我有干净的数据库,没有任何用户,并且我收到错误:
Exception Type: DoesNotExist at /
Exception Value: UserProfile matching query does not exist.
这是我尝试过的两个版本,但没有成功。为什么它不应该搜索匹配的用户?
def friends_list(request):
if request.user.is_authenticated:
userprofile = UserProfile.objects.get(user=request.user)
friends = Friend.objects.filter(friend_of=userprofile)
else:
friends = {}
return {'friends': friends}
def friends_list(request):
userprofile = UserProfile.objects.get(user=request.user)
if userprofile:
friends = Friend.objects.filter(friend_of=userprofile)
else:
friends = {}
return {'friends': friends}
Run Code Online (Sandbox Code Playgroud)
我不知道您的系统如何创建 UserProfiles,但看起来即使用户登录,也可能没有他们的 UserProfiles。您应该假设 UserProfile 可能不存在来编写代码:
def friends_list(request):
userprofile = None
if request.user.is_authenticated:
try:
userprofile = UserProfile.objects.get(user=request.user)
except DoesNotExist:
pass
if userprofile:
friends = Friend.objects.filter(friend_of=userprofile)
else:
friends = []
return {'friends': friends}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
812 次 |
| 最近记录: |