Python Django:填写表单字段总是在 POST 上抛出错误"This field is required"



我有一个表单,其中只包含一个文本框和一个提交按钮。每次当我填写文本框并尝试提交表单验证失败时;此字段是必需的";被扔了。

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

相关内容

最新更新