我是 Django 的新手,我刚刚创建了一个简单的表单来将用户输入存储到数据库中,但是单击提交按钮时没有存储数据,当我单击提交按钮时刷新了当前页面,但没有存储数据在数据库中。我的代码有什么问题?我创建了以下模型,我的代码是,
mysite/jobs/models.py
from django.db import models
class Cost(models.Model):
cost = models.FloatField()
date = models.DateField()
mysite/jobs/views.py
from django.shortcuts import render
from jobs.forms import CostForm
from jobs.models import Cost
def costView(request):
if request.method == 'POST':
form = CostForm(request.POST)
if form.is_valid():
date = request.POST.get('date','')
cost = request.POST.get('cost','')
cost_obj = Cost(date=date, cost=cost)
cost_obj.save()
return HttpResponse("csdfsdf")
else:
form = CostForm()
return render(request,'jobs/cost.html',{'form':form,})
mysite/jobs/forms.py
from django import forms
class CostForm(forms.Form):
date = forms.DateField()
cost = forms.FloatField()
mysite/jobs/templates/jobs/cost.html
<form action="{% url 'jobs:cost' %}" method="post"> {% csrf_token %}
<p><label for="date">Date:</label><input type="text" name="date" value={% now "Y-m-d" %}/></p>
<p><label for="cost">Cost:</label><input type="text" name="cost" value="0" id="cost"/></p>
<input type="submit" value="Submit"/>
</form>
mysite/jobs/urls.py
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.costView, name='cost'),
]
mysite/urls.py
from django.conf.urls import url, include
from django.contrib import admin
urlpatterns = [
url(r'^', include('jobs.urls',namespace="jobs")),
url(r'^polls/', include('polls.urls')),
url(r'^admin/', admin.site.urls),
]
最佳答案
您的表格可能无效。
您应该在模板中使用 {{ form.errors }}
来显示验证错误。此外,您应该使用 {{ form.date }}
和 {{ form.cost }}
来显示字段,而不是手动创建输入标签,以便值验证失败时重新填充。
关于python - 如何使用 Django 1.10 将数据从 html 表单存储到 postgres 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41562962/