输入表格没有通过Django

时间:2015-08-12 04:16:41

标签: python django forms

我正在关注链接的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})

但没有奏效。

我做错了什么?

提前致谢

1 个答案:

答案 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()

你应该好好去。