【问题标题】:POST no save to model. return "this field is required" error on DjangoPOST 不保存到模型。在 Django 上返回“此字段是必需的”错误
【发布时间】:2019-04-18 11:08:37
【问题描述】:

嗨朋友们,我是 Django 的新手 我想用引导程序制作一个表单。

当我点击提交按钮后数据是

<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>

我认为我的 Bootstrap 实现存在问题。在此实施之前,我将表单与“form.as_p”一起使用,这是正确的。

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

【问题讨论】:

  • 您好,您也可以在问题中发布此表单的视图吗?
  • 尝试只使用name='borclu' 而不是name={{ form.borclu }} 等等其他字段。确保 name 属性的值与表单中指定的字段名称匹配。

标签: python django


【解决方案1】:

您在模板中放置了错误的内容。从提交的数据中应该可以看出,每个字段都有一些HTML作为key,这显然是错误的。

您可能应该使用name='{{ form.borclu.name }}' 而不是name='{{ form.borclu }}' 等。

【讨论】:

    猜你喜欢
    • 2021-04-10
    • 2020-06-02
    • 2019-04-13
    • 1970-01-01
    • 2017-06-05
    • 2016-04-29
    • 2012-12-02
    • 2019-06-11
    相关资源
    最近更新 更多