【问题标题】:Data not inserting in Django Database using Form DTL未使用 Form DTL 将数据插入 Django 数据库
【发布时间】:2020-03-16 12:36:26
【问题描述】:

这是我的 model.py 文件

class TestData(models.Model):
    test_date = models.DateField(blank=True)
    test_name = models.CharField(max_length=255)
    result = models.IntegerField()

这是我的 forms.py 文件

class TestDataForm(forms.ModelForm):
    class Meta:
        model = TestData
        fields = ['test_date','test_name','result']

这是我的views.py文件

def photo_single(request):
    if request.POST:
        form = TestDataForm(request.POST)
        if form.is_valid():
            if form.save():
                return redirect('/', messages.success(request, 'Order was successfully created.', 'alert-success'))
            else:
                return redirect('/', messages.error(request, 'Data is not saved', 'alert-danger'))
        else:
            return redirect('/', messages.error(request, 'Form is not valid', 'alert-danger'))
    else:
        form = TestDataForm()
        return render(request, 'photo_single.html', {'form':form})

这是我的 photo_single.html 文件

<form>{% csrf_token %}
  <div class="form-row">
    <div class="form-group col-md-6">
      <label for="date">Date</label>
      {{ form.test_date | add_class:'form-control' | attr:'type:date' }}
    </div>
    <div class="form-group col-md-6">
      <label for="test_name">Test Name</label>
      {{ form.test_name | add_class:'form-control' }}
    </div>
    <div class="form-group col-md-6">
      <label for="result">Result</label>
      {{ form.result | add_class:'form-control' }}
    </div>
  </div>
  <button type="submit" class="btn btn-primary" name="data">Submit</button>
</form>

当我将值从表单提交到数据库时,我在 url 中得到了这个

http://127.0.0.1:8000/photo/?test_date=2020-03-13&test_name=SUGAR&result=23&data=

并且数据没有保存在数据库中。 谁能帮我解决为什么?我搞砸了。我在这里错过了什么吗? 谢谢

【问题讨论】:

    标签: python django django-models django-forms django-views


    【解决方案1】:

    试试这个

    def photo_single(request):
    if request.POST:
        form = TestDataForm(request.POST)
        if form.is_valid():
            base_form = form.save(commit=False)
            base_form.save()
            if form.save():
                return redirect('/', messages.success(request, 'Order was successfully created.', 'alert-success'))
            else:
                return redirect('/', messages.error(request, 'Data is not saved', 'alert-danger'))
        else:
            return redirect('/', messages.error(request, 'Form is not valid', 'alert-danger'))
    else:
        form = TestDataForm()
        return render(request, 'photo_single.html', {'form':form})
    

    在模板中:

    <form method="post" action="/your-url/">
    {% csrf_token %}
    ---------
    

    请参考this 希望对你有帮助

    【讨论】:

    • 非常感谢。那只是一个愚蠢的错误。我没有提到表单标签属性method="POST"。现在工作正常。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 2023-03-06
    • 2018-07-09
    • 1970-01-01
    • 2021-08-14
    • 2012-07-22
    • 1970-01-01
    • 2014-07-15
    • 1970-01-01
    相关资源
    最近更新 更多