我的模型中有很多字段,我正在尝试使用inlineform在django admin中渲染它。一切都很好,但我无法按照自己的意愿自定义表单。
模型很简单,有一个供应商和一个名为locations的多个字段
Supplier(models.Model):
location = models.ManyToManyfield(Location, blank=True)
inlineform
class LocationInLineForm(admin.TabularInLine):
model = Supplier.Location.through
我想要的第一件事是限制选择。约束是两个:
管理员用户加载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'] 传递它。我是对的吗?