我在写一个简单的表格时遇到了问题。 这是我表格的模型。
class UserStock(models.Model):
amount = models.FloatField(default=0)
date = models.DateTimeField('buy date')
stockPrice = models.FloatField(default=0)
user = models.ForeignKey(User)
stock = models.ForeignKey(Stock)
这是我的forms.py文件
from django import forms
from datetime import date
class AddStockForm(forms.Form):
stock = forms.CharField(max_length=10)
amount = forms.FloatField(initial=0)
#, initial=date.today, input_formats=settings.DATE_INPUT_FORMATS
date = forms.DateField('buy date', initial=date.today)
stockPrice = forms.FloatField(initial=0)
这是我提交表单数据的第一个版本。
@login_required(login_url='/login/')
def new_stock(request):
if request.method == 'POST':
form = AddStockForm(request.POST)
if form.is_valid():
cd = form.cleaned_data
#dateForm = datetime.datetime.strptime(cd['date'],"%Y-%m-%d")
userStock = UserStock(amount = cd['amount'], date=cd['date'], stockPrice = cd['StockPrice'])
userStock.user = request.user
stockForm = Stock.objects.filter(symbol=cd['stock'])
userStock.stock = stockForm
userStock.save()
else:
form = AddStockForm()
template = loader.get_template("userStocks/new.html")
context = RequestContext(request, {
'form':form.as_p(),
})
return HttpResponse(template.render(context))
这就是我的错误。 提交时出错:输入有效日期。 我想这是Django的自动检查格式。我google了很多但没有帮助。我尝试过input_formats变种,但没有运气。在此先感谢您的帮助。
答案 0 :(得分:11)
我认为这条线会做。
date = forms.DateField(label='buy date', input_formats=['%Y-%m-%d'], initial=date.today)
我认为该表单接受“购买日期”作为您的输入格式,这就是为什么当您尝试手动设置它时会发送重复的错误。
希望这有效
PS:也许在指定“购买日期”是您的标签后,您可以删除input_formats属性。