Django,覆盖ManyToManyField

时间:2011-02-09 18:45:13

标签: django many-to-many override

我正在基于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'

这是我失去监督的地方。有人可以帮助我吗?

1 个答案:

答案 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?这可能是它无法正常工作的原因。