我的django模型中存在以下关系:
django User
- 有很多 - Competition
- 有很多 - Category
- 有很多 - Competitor
在管理员中,我只想显示由登录的User
创建的对象。
我可以为Competition
做到这一点 - 没问题:
在admin.py
我覆盖模型管理员get_queryset
并将其分配给模型:
class CompetitionAdmin(admin.ModelAdmin):
def get_queryset(self, request):
qs = super(CompetitionAdmin, self).get_queryset(request)
if request.user.is_superuser:
return qs
return qs.filter(user_id=request.user.id)
admin.site.register(Competition,CompetitionAdmin)
我如何为Category
并因此Competitor
做同样的事情?
答案 0 :(得分:0)
您可以使用双下划线表示法引用外键关系:
Category
如果Category
有一个ForeignKey字段competition
:
Category.objects.filter(competition__user=request.user)
Competitor
如果Competitor
有一个ForeignKey字段category
:
Competitor.objects.filter(category__competition__user=request.user)