【发布时间】:2016-01-13 20:05:51
【问题描述】:
我正在尝试自定义 Django 界面。 我有一个 CategoryAdmin(admin.ModelAdmin),它有一个外键,每个 Category 都可以有来自同一个表的 SubCategories。
每个具有子类别的类别都将显示为内联。 基本上在主要类别查询集上,我想显示那些 Parent = 0 所以我将 get_queryet 覆盖到这个:
def get_queryset(self, request):
if request.user.is_superuser:
qs = super(CategoryAdmin, self).get_queryset(request)
return qs
company = CompanyUsers.objects.filter(UserId = request.user.id) #not relevant
companyid = company.values_list('CompanyId', flat=True) #not relevant
qs = Category.objects.filter(CompanyId = companyid, Parent = 0)
return qs
现在,当用户选择其中一个类别时,内联不会被父级 = 0 过滤,但是当单击 更改 它们时,我收到了错误:
“主键为'x'的类别对象不存在”
关于如何仅在主要类别查询集上进行过滤的任何想法?
注意:删除“Parent = 0”时错误消失。
注意 2:知道单击了哪个实例可能很有用。我知道可以通过覆盖 get_formset 但不幸的是 get_queryset 在 get_formset 之前被调用:(
非常感谢。
【问题讨论】:
标签: django django-models django-admin