过滤Django管理中的foreignkey字段
发布于 2021-01-29 18:28:21
我有以下模型:
class Entity(models.Model):
name=models.CharField(max_length=100)
class Theme(models.Model):
name=models.CharField(max_length=100)
entity=models.OneToOneField(Entity)
class Company(models.Model):
name=models.CharField(max_length=100)
theme=models.OneToOneField(Theme,null=True,blank=True)
我想在管理员中theme
添加时过滤字段Company
,如下所示:
class CompanyAdmin(admin.ModelAdmin):
def queryset(self, request):
qs = super(CompanyAdmin, self).queryset(request)
qs.theme.queryset = Theme.objects.filter(name__iexact='company')
return qs
admin.site.register(Company, CompanyAdmin)
我已经尝试了很多东西,但是没有任何效果!我怎样才能做到这一点?
关注者
0
被浏览
152
1 个回答
-
使用
render_change_form
方法:class CompanyAdmin(admin.ModelAdmin): def render_change_form(self, request, context, *args, **kwargs): context['adminform'].form.fields['theme'].queryset = Theme.objects.filter(name__iexact='company') return super(CompanyAdmin, self).render_change_form(request, context, *args, **kwargs)