django filter_horizo​​ntal带有预加载数据

时间:2018-07-23 20:39:17

标签: python django django-models django-admin

我有一个问题,我不知道最好的处理方法。

想象一下以下情况:我在2个不同的应用程序中有2个模型。这些模型之间的关系之一是多方面的。在django管理面板中显示的“帐单”模型表单中,我想根据我的“人”模型带来预加载结果。在“ Bill”的filter_horizo​​ntal中,我只想显示Person中“ is_partner = True”的结果,但全部显示。在Django中做这件事的最佳和“正确”方法是什么?在filter_horizo​​ntal中非常重要的预加载/过滤数据。

person / models.py:

class Person(models.Model):
    title = models.CharField(max_length=256)
    is_partner = models.NullBooleanField(default=False)
    is_feature = models.NullBooleanField(default=False)

business / models.py

class Bill(models.Model):
    total_value = models.PositiveIntegerField()
    client = models.ManyToManyField('person.person')

business / admin.py

class BillAdmin(admin.ModelAdmin):
    filter_horizontal = ('client',)
    search_fields = ['__all__']

Image of horizontal_filter from django admin

0 个答案:

没有答案