python - Python Django:填写表单字段总是在POST上抛出错误“此字段是必需的”
问题描述
我有一个表单,其中只包含一个文本框和一个提交按钮。每次我填写文本框并尝试提交表单验证失败并抛出错误消息“此字段为必填项”。
add_stock.html
{% extends 'base.html' %}
{% block content %}
<h1>Add Stock</h1>
<form action="{% url 'add_stock' %}" method="POST" enctype="multipart/form-data">
{% csrf_token %}
<input class="form-control" type="text" id="ticker">
<button type="submit" class="btn btn-primary">Add</button>
</form>
{{ form.errors }}
{% endblock %}
视图.py
def add_stock(request):
if request.method == 'POST':
form = StockForm(request.POST or None)
if form.is_valid():
form.save()
messages.success(request, ('Stock has been added'))
return redirect('overview')
return render(request, 'add_stock.html', {'form':form})
return render(request, 'add_stock.html', {})
模型.py
from django.db import models
class Stock(models.Model):
ticker = models.CharField(max_length=10)
#trade_date = models.DateField(blank=True, default='')
#quantity = models.IntegerField(blank=True, default='')
#unit_price = models.DecimalField(max_digits=8, decimal_places=2, blank=True, default='')
#brokerage = models.DecimalField(max_digits=3, decimal_places=2, blank=True, default='')
def __str__(self):
return self.ticker
表格.py
from django import forms
from .models import Stock
class StockForm(forms.ModelForm):
class Meta:
model = Stock
fields = ["ticker"]
#fields = ["ticker", "trade_date", "quantity", "unit_price", "brokerage"]
解决方案
你应该设置name
属性
<input class="form-control" type="text" name="ticker" id="ticker">
推荐阅读
- reactjs - 如何使用 Apollo graphql 和 graphene-django 在 React 中设置初始状态
- r - 如何使用 which() 从 R 中的数据框中仅选择数字
- android - 卡在 ArrayAdapter 上
- google-chrome - URL 哈希片段中的冒号波浪号 (:~:) 是什么意思?
- python - 使用shutil在Python中复制文件,给出TypeError
- react-native - React Native 开发工作流程
- html - 为什么我在使用 HTML5 模式时遇到错误
- java - spring thymeleaf error EL1008E 在“LiveDataController$LiveDataSet”类型的对象上找不到属性或字段可能不是公共的或无效的?
- regex - 谷歌正则表达式排除
- python - 如何在python中加上日期时间?