覆盖ManyToManyField

时间:2013-05-06 10:39:15

标签: python django django-forms

我有以下表格,我想覆盖manytomanyfield 我准备了一个自动完成的小部件。

class AutoCompleteForeignKeyWidget(forms.TextInput):
    input_type = 'text'


class FooForm(forms.ModelForm):

    regions = forms.CharField(widget=AutoCompleteForeignKeyWidget(attrs={
        'class': 'regions', 'placeholder': 'Type Region',
        'autocomplete': 'off'
    }), required=True)

    class Meta:
        model = Hotel
        exclude = ('regions')

但这不成功。我得到完整性错误DETAIL: Key (region_id)=(0) is not present in table "destinations_region".有没有办法覆盖manytomanyfield

1 个答案:

答案 0 :(得分:0)

如果我错了,请纠正我,但这不起作用,因为浏览器会将输入的内容作为表单字段值发送。

这意味着django会收到region ='Some region name'。但是Django ManyToManyField用于处理主键列表,例如[1,2,3],其中1是第一个选定区域的PK,依此类推。

我建议你使用autocomplete app,这会让它变得更容易。