我有以下型号
class Team(models.Model):
name = models.CharField(max_length=100)
members = models.ManyToManyField(User, related_name="members", blank=True, null=True)
以下视图(控制器)
def my_teams(request):
my_list = Team.objects.filter(members=request.user).order_by('name')
return render_to_response('teams/index.html', {'my_list': my_list})
当用户登录时,这非常有用,但在作为匿名用户进行测试时,我收到以下错误。
Exception Value: int() argument must be a string or a number, not 'AnonymousUser'
我如何迎合匿名用户?这是在我的模板或视图中处理的吗?
非常感谢任何关于如何实现这一目标的建议。
答案 0 :(得分:3)
我想我可以通过修改我的观点来解决这个问题:
def my_teams(request):
if request.user.is_authenticated():
my_list = Team.objects.filter(members=request.user).order_by('name')
return render_to_response('teams/index.html', {'my_list': my_list})
else:
return render_to_response('teams/index.html', {})
最佳做法是什么都不返回?我现在如何在模板中处理这个问题?