0

我正在使用 django_select2 "ModelSelect2Widget" 并使用 html-form "No results found"。怎么了?

模型.py

class Department(Catalog):
    name = models.CharField(max_length=50, unique=True)

class Person(Catalog):
    surname = models.CharField(max_length=50)
    name = models.CharField(max_length=50)
    department = models.ForeignKey(Department, on_delete=models.PROTECT)

表格.py

class MyWidget(ModelSelect2Widget):
    model = Department
    search_fields = ['name__icontains', ]


class PersonForm(ModelForm):
    class Meta:
        model = Person
        fields = ['surname', 'name', 'department']
        widgets = {'department': MyWidget}
4

2 回答 2

0

您的表单代码中的以下更改将在表单 PersonForm 中工作并完全删除字段:

widgets={
            'surname':forms.TextInput(attrs={'class':'form-control'}), 
            'name':forms.TextInput(attrs={'class':'form-control'}),
            'department':MyWidget(attrs={'class':'form-control'}),
        }

完整的 PersonForm 表单应如下所示:

class PersonForm(ModelForm):
    class Meta:
       model = Person
       exclude = () # If you have any column like datetime add that into `exclude`
       widgets={
        'surname':forms.TextInput(attrs={'class':'form-control'}),
        'name':forms.TextInput(attrs={'class':'form-control'}),
        'department':MyWidget(attrs={'class':'form-control'}),
       }
于 2018-11-30T07:34:42.437 回答
0

这是我的错。我已经安装了“SELECT2”,除了“django-select2”。我通过删除链接禁用了“SELECT2”,但留下了“django-select2”链接。现在 MyWidget 工作正常。

于 2018-12-04T11:27:32.487 回答