我想自定义Django接口。 我有一个CategoryAdmin(admin.ModelAdmin),它有一个foreignkey自己,每个类别可以从同一个表中的SubCategories。过滤|后控制查询集Django Admin
每个具有子类别的类别都将显示为内联。 基本上在查询集我想告诉那些谁的父母= 0,所以我overrided get_queryet这主要类别:由家长= 0
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
现在,当用户挑选类别之一,内联进行过滤但点击到变化他们当我得到了错误:
“与主键类对象的‘x’不存在”
如何筛选仅在主类别查询集什么想法?
注意:当删除“Parent = 0”时,错误消失。
注2:可能有助于了解哪个实例被点击。我知道这是可能通过重写get_formset可惜get_queryset是get_formset :(
非常感谢之前调用。
父指的是表中的PK,因此不能为无。另外,我没有看到这是如何解决我的问题。 – YanivMor
为什么外键不能为空? – Kostas
您可以看到更新的答案以获取更多信息。 – Kostas