“模型选择”字段在模板上返回空值

时间:2019-04-18 13:08:08

标签: python django

我的模型表格有一个coices字段

class cekler(models.Model):
   bankalar = (
        ('Ziraat Bankası', 'Ziraat Bankası'),
        ('YapıKredi Bankası', 'YapıKredi Bankası'),
        ('Vakıflar Bankası', 'Vakıflar Bankası'),
        ('Teb', 'TEB'),
    )
    banka=models.CharField(max_length=20, choices=bankalar, verbose_name="Banka Adı:")

还有我的表格;

class CekForm(forms.ModelForm):

    class Meta:
        model=cekler
        fields=[
               'banka',
                  ]

我的观点是这样的

def cekEkle (request):


    form = CekForm(request.POST or None)

    if form.is_valid():
        form.save()

    context ={
        'form':form,
    }
    return render(request,'cek/form.html',context)

如何在带有HTML / Select-Option标签的模板上使用此coices字段?

1 个答案:

答案 0 :(得分:0)

问题是您没有将name属性传递给选择字段。

<select id="inputState" name="banka" class="form-control">
    {% for key, value in form.banka.field.choices %}
        <option value="{{ key }}" >{{ value }}</option>
    {% endfor %}
</select> 

这应该可以解决您的问题。

此外,如果需要,还可以从后端将css类传递到所有字段。

class CekForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(CekForm, self).__init__(*args, **kwargs)
        self.fields["banka"].widget.attrs['class'] = 'form-control'

    class Meta:
        model=cekler
        fields=[
               'banka',
                  ]

然后,您只需在模板中使用{{form.banka}}