Jam*_*ods 5 django django-views
我有以下型号
class Team(models.Model):
name = models.CharField(max_length=100)
members = models.ManyToManyField(User, related_name="members", blank=True, null=True)
Run Code Online (Sandbox Code Playgroud)
以及以下视图(控制器)
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})
Run Code Online (Sandbox Code Playgroud)
当用户登录时,这非常有效,但我在以匿名用户身份进行测试时收到以下错误。
Exception Value: int() argument must be a string or a number, not 'AnonymousUser'
Run Code Online (Sandbox Code Playgroud)
我如何满足匿名用户的需求?这是在我的模板或视图中处理的吗?
任何有关如何实现这一目标的建议将不胜感激。
我想我可以通过修改我的视图来解决这个问题:
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', {})
Run Code Online (Sandbox Code Playgroud)
这是不返回任何内容的最佳实践吗?我现在如何在模板中处理这个问题?
| 归档时间: |
|
| 查看次数: |
2529 次 |
| 最近记录: |