【发布时间】:2015-07-12 18:48:49
【问题描述】:
当以我的超级用户“admin”身份登录时,我可以按任何字段过滤 QuerySet。但是,当我以普通用户身份登录时,我只能按“用户”字段进行过滤。尝试按任何其他字段进行过滤会返回一个空列表。
class Question(models.Model):
user = models.ForeignKey(User, default=1)
verb = models.ForeignKey(Verb)
voice = models.ForeignKey(Voice)
...
这很好用:
def next_question(request):
user = request.user
q = Question.objects.filter(user=user)
当以超级用户身份登录但以普通用户身份登录失败时,这可以正常工作(myverb 是我的Verb 模型的一个实例):
def next_question(request):
user = request.user
q = Question.objects.filter(user=user, verb=myverb)
我是 Django 新手(虽然不是 Python),所以我是否缺少一些需要为普通用户设置的权限来解决此问题?
已编辑以添加显示数据库中项目的图像
超级用户“管理员”的示例问题:
用户“jamie”的示例问题:
【问题讨论】: