Django InLineSetModel和many2many字段选择过滤

时间:2016-02-07 10:37:45

标签: django-admin

我的模型中有很多字段,我正在尝试使用inlineform在django admin中渲染它。一切都很好,但我无法按照自己的意愿自定义表单。

模型很简单,有一个供应商和一个名为locations的多个字段

Supplier(models.Model):
    location = models.ManyToManyfield(Location, blank=True)

inlineform

class LocationInLineForm(admin.TabularInLine):
    model = Supplier.Location.through

我想要的第一件事是限制选择。约束是两个:

  1. 位置模型有一个布尔字段'active',我需要根据
  2. 进行过滤
  3. 供应商必须是django admin。
  4. 中选择的供应商

    管理员用户加载django管理员,点击供应商,InLineForm必须显示他的有效位置。

    我认为以下方法是正确的方法:

    def formfield_for_manytomany(self, db_field, request, **kwargs):
    

    但不是由InLineForm调用的。打电话是:

    def formfield_for_foreignkey(self, db_field, request, **kwargs):
    

    django文档中的示例基于request.user,但我需要的是当前的供应商,我可以在哪里获得它?在请求中?但是哪里? request.GET是空的。也许我可以从db_field获得它,但我不知道如何。

    如果我可以获得供应商ID,我可以创建一个查询集并使用 kwargs ['queryset'] 传递它。我是对的吗?

0 个答案:

没有答案