如何使用ForeignKeyRawIdWidget

时间:2010-02-26 21:21:58

标签: django widget admin

我想扩展ForeignKeyRawIdWidget,所以我希望能够在不设置raw_id_fields的情况下使用它。

接下来我没有收到错误,但我认为没有效果:

# models.py
class Product(models.Model):
    ...

class GroupProduct(Product):
    ...
    products = models.ManyToManyField(Product, related_name="%(class)s_related")

# forms.py
class GroupProductAdminForm(forms.ModelForm):    
    class Meta:
        model = GroupProduct
        widgets = {
            'products': ForeignKeyRawIdWidget(GroupProduct._meta.get_field('products').rel),
        }

这给了我一个错误: init ()至少需要2个非关键字参数(给定1个)

products = forms.ModelMultipleChoiceField(widget=ForeignKeyRawIdWidget(GroupProduct._meta.get_field('products').rel))

我该怎么做?

由于

2 个答案:

答案 0 :(得分:1)

您忘记将相关的Model-QuerySet传递给ModelMultipleChoiceField。

products = forms.ModelMultipleChoiceField(Product.objects, widget=ForeignKeyRawIdWidget(GroupProduct._meta.get_field('products').rel))

答案 1 :(得分:0)

使用ManyToManyRawIdWidget而不是ForeignKeyRawIdWidget为我修复了它。