【发布时间】:2012-03-09 06:40:49
【问题描述】:
我有一个在模板中正确呈现的 Django 模型/视图/表单,但它没有提交输入到数据库的数据。对此的任何帮助将不胜感激!
#models.py
from django.db import models
from django.forms import ModelForm
class UserRegistration(models.Model):
user_first = models.CharField(max_length=50)
user_last = models.CharField(max_length=50)
user_email = models.EmailField()
#user_fantasyhost = models.CharField(max_length=50)
def __unicode__(self):
return u'%s %s %s' % (self.user_first, self.user_last, self.user_email)
class RegForm(ModelForm):
class Meta:
model = UserRegistration
#views.py
from django.shortcuts import render_to_response
from django.shortcuts import render
from django.http import HttpResponse, HttpRequest, HttpResponseRedirect
from acme.dc_django.models import UserRegistration
from acme.dc_django.models import RegForm
def regPage(request, id=None):
form = RegForm(request.POST or None,
instance=id and UserRegistration.objects.get(id=id))
if request.method == 'POST' and form.is_valid():
form.save()
return HttpResponseRedirect('/league_setup/')
user_info = UserRegistration.objects.all()
context = {
'form':form,
'user_info' :user_info,
}
return render(request, 'regpage.html', context)
#repage.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML lang="en">
<head>
<title>User Registration</title>
</head>
<body>
<form method="POST" action="/league/">
{% csrf_token %}
<table>{{ form }}</table>
<input type="submit" value="Create Account"
</form><br /><br />
</body>
</HTML>
感谢您的帮助,
dp
【问题讨论】:
-
您还没有关闭表单提交标签,但这可能只是一个错字,您的浏览器可能可以处理它。这类问题往往比我们更容易调试。观点错在哪里?在视图中放置一些打印语句以找出答案。例如,
form.is_valid()的值是什么。 -
您能否详细说明什么不起作用?我发现
but it is not submitting the data that is input to the database令人困惑 -
我没有收到错误,当我回到我的桌面时,我将包含打印语句。问题是当我点击提交按钮时,什么都没有发生——什么都没有。既然你指出了打开的标签,我会看看这是一个错字还是问题所在。以后再说。谢谢。
-
我关闭了提交标签,现在提交按钮将我带到正确的页面,但数据从未写入数据库,我将插入打印语句...
-
请更新代码示例
标签: html django django-forms