我正在关注链接的Mike Hibbert's教程。该网站工作得很好,但是,我在表单中输入的输入没有在数据库中更新或传输。
from forms import LocationForm
from django.http import HttpResponseRedirect
from django.core.context_processors import csrf
from django.shortcuts import render_to_response
from django.http import HttpResponse
from core.models import Location
from django.shortcuts import render
class LocationListView(ListView):
model = coremodels.Location
template_name='location/list.html'
def create2(request):
if request.method =='POST':
form = LocationForm(request.POST)
if form.is_valid():
form.save
return HttpResponseRedirect('/location/')
else:
form = LocationForm()
args = {}
args.update(csrf(request))
args['form'] = form
return render_to_response('location/create_location.html', args)
my models.py
class Location(models.Model):
title = models.CharField(max_length=300)
description = models.TextField(null=True, blank=True)
address = models.TextField(null=True, blank=True)
hours = models.TextField(null=True, blank=True)
我的create_location.html:
{% block sidebar %}
<ul>
<li> <a href ="/location/">Cancel</a></li>
</ul>
{% endblock %}
<form action="" method="post"> {% csrf_token %}
<ul>
{{form.as_ul}}
</ul>
最后是我的forms.py
from django import forms
from models import Location
class LocationForm (forms.ModelForm):
class Meta:
model = Location
fields =('title', 'description', 'address')
<input type="submit" name="submit" value="create location">
</form>
没有错误或任何内容,网站工作正常,但是如果我点击创建新位置并尝试在create_location.html上提交新位置,则会返回到位置(list.html)但没有新位置。
我也尝试使用文档中的代码更新视图
return render(request, 'location/create_location.html',{'form': form})
但没有奏效。
我做错了什么?
提前致谢
答案 0 :(得分:2)
def create2(request):
if request.method =='POST':
form = LocationForm(request.POST)
if form.is_valid():
form.save
你不是调用 form.save()
,你只是“说明”了这个功能名称(这里什么都不做)。
使用
def create2(request):
if request.method =='POST':
form = LocationForm(request.POST)
if form.is_valid():
form.save()
你应该好好去。