不保存到模型。在Djang上返回“this field is required”错误

2024-10-04 09:22:36 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,朋友们,我是刚来Django的 我想用bootstrap做一个表单

当我单击“提交”按钮时,Post数据是

<QueryDict: {'csrfmiddlewaretoken': ['mjzoKZ1GPuHMCR6LQwNpUxDW0Y1KyxRgySSynPSOU7eHK8Zlm5dgqvWwhXpD3F0M'], '<input type="text" name="borclu" maxlength="36" required id="id_borclu">': ['asfasf'], '<input type="email" name="borclu_mail" maxlength="25" required id="id_borclu_mail">': ['asdasd'], '<textarea name="borcluAdres" cols="40" rows="10" maxlength="80" required id="id_borcluAdres">\r\n</textarea>': ['asdasd'], '<input type="text" name="borcluTelefon" maxlength="11" required id="id_borcluTelefon">': ['asdasd'], '<input type="number" name="tutar" required id="id_tutar">': ['asdasd'], '<input type="text" name="cek_tarih" required id="id_cek_tarih">': ['12-02-2019']}>

但没有数据保存到模型中

我的模特就是这样

class cekler(models.Model):

    borclu=models.CharField(max_length=36,verbose_name="Keşideci")
    borcluAdres=models.TextField(max_length=80,verbose_name="Keşideci Adresi")
    borclu_mail = models.EmailField(max_length=25,verbose_name="Keşideci E Posta Adresi")
    borcluTelefon=models.CharField(max_length=11,verbose_name="Keşideci Telefon")

    tutar=models.IntegerField(verbose_name="Tutar")
    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ı:")
    cek_tarih=models.DateField(verbose_name="Çek Tarihi")

    son_tarih = models.DateTimeField(blank=True, null=True)

    def _get_gecen_gun(self):
        "Returns the person's full name."
        day=date.today()-self.cek_tarih
        ggun = str(day)
        ggun = ggun.split(' ')[0]
        return '%s' % (ggun)

    gecenGun = property(_get_gecen_gun)

    def __str__(self):
        return self.borclu

    def save(self, *args, **kwargs):
        if not self.pk:
            self.son_tarih = self.cek_tarih + datetime.timedelta(days=80)
        super(cekler, self).save(*args, **kwargs)
    class Meta:
        ordering = ['-id']

我的表单.py

from django import forms
from .models import cekler

class CekForm(forms.ModelForm):

    class Meta:
        model=cekler
        fields=[
            'borclu',
            'borcluAdres',
            'borclu_mail',
            'borcluTelefon',
            'tutar',
            'banka',
            'cek_tarih',

        ]

我的模板

<form method="post">
     {% csrf_token %}
<div class="container">

 <div class="form-row">
    <div class="form-group col-md-6">
      <label for="inputEmail4">Keşideci Adı</label>

      <input type="text" name='{{ form.borclu }}' class="form-control"  >
    </div>
    <div class="form-group col-md-6">
      <label for="inputPassword4">Borçlu Mail</label>
      <input type="text" name='{{ form.borclu_mail }}' class="form-control"  >
    </div>
  </div>
  <div class="form-group">
    <label for="inputAddress">Borçlu Adres</label>
  <input type="text" name='{{ form.borcluAdres }}' class="form-control"  >
  </div>
  <div class="form-group">
    <label for="inputAddress2">Borçlu Telefon</label>
    <input type="text" name='{{ form.borcluTelefon }}' class="form-control"  >
  </div>
  <div class="form-row">
    <div class="form-group col-md-6">
      <label for="inputCity">Tutar</label>
      <input type="text" name='{{ form.tutar }}' class="form-control"  >
    </div>
    <div class="form-group col-md-4">
      <label for="inputState">Banka</label>
      <select id="inputState" class="form-control">
            {% for value in form.banka %}
            <option >{{ value }}</option>
            {% endfor %}

      </select>
    </div>
    <div class="form-group col-md-2">
      <label for="inputZip">Çek Tarihi</label>
       <input type="text" name='{{ form.cek_tarih }}' class="form-control"  >
    </div>
  </div>

<a href="{% url 'home' %}"> <input type="submit" class="btn btn-primary" value="Ekle"></a>
</div>






</form>

我认为这个问题来自我的引导实现。在此之前,我用form和form.as\p,这是正确的

现在,当我点击按钮时,任何事情都会发生。没有错误。但我的模型上没有数据


Tags: textnameselfdivformidforinput
1条回答
网友
1楼 · 发布于 2024-10-04 09:22:36

你在模板里放错东西了。您应该能够从提交的数据中看到,每个字段都有一些HTML作为其键,这显然是错误的

代替name='{{ form.borclu }}'等,你应该做name='{{ form.borclu.name }}'

相关问题 更多 >