我正在基于ManyToManyRawIdWidget建立我自己的小部件。
但是,只要我在ModelAdmin中尝试以下内容:
formfield_overrides = {
ManyToManyField: {'widget': ManyToManyRawIdWidget},
}
它会提示我
__init__() takes exactly 2 arguments (1 given)
我想我需要用某些东西填充rel
参数,可能是关系模型(这是Tag
模型)
但后来我遇到了TemplateSyntaxError:
Caught AttributeError while rendering: type object 'Tag' has no attribute 'to'
这是我失去监督的地方。有人可以帮助我吗?
答案 0 :(得分:0)
只是想确保在documentation for formfield_overrides:
中注意到此警告警告
如果您想使用自定义小部件 与关系字段(即ForeignKey 或ManyToManyField),请确保你 没有在该字段中包含该字段的名称 raw_id_fields或radio_fields。
formfield_overrides不会让你 更改关系字段上的小部件 有raw_id_fields或 radio_fields设置。那是因为 raw_id_fields和radio_fields意味着 他们自己的自定义小部件。
我不知道ManyToManyRawIdWidget但是从名称判断我认为在这种情况下可能会设置raw_id_fields?这可能是它无法正常工作的原因。