gpt4 book ai didi

django - 在 Django 中使用 ModelForm 添加到数据库

转载 作者:行者123 更新时间:2023-12-04 20:17:10 24 4
gpt4 key购买 nike

我是 Django 的新手,我已经用尽了所有论坛和教程,但我仍然无法将表单数据导入数据库。我有一个简单的模型,它由一个名称和一个电子邮件字段组成,我最终将在程序中引用它。单击提交后我可以加载不同的页面,但我的数据不会发布到数据库中。我已经尝试了我能想到的所有方法,所以我的代码可能在这一点上被劫持了,但在当前的迭代中,这就是我所拥有的:

#models.py
from django.db import models
from django.forms import ModelForm

class Patron(models.Model):
name = models.CharField(max_length=200)
email = models.EmailField(max_length=75)


def _unicode_(self):
return self.name

class PatronForm(ModelForm):
class Meta:
model = Patron

#view.py

from django.shortcuts import render_to_response, get_object_or_404
from patrons.models import Patron
from django.template import RequestContext
from django.core.context_processors import csrf
from django.core.urlresolvers import reverse
from django.forms import ModelForm


def index(request):
if request.method == 'POST':
post = request.POST
name = post['name']
email = post['email']
f = PatronForm(request.Post)
new_patron = f.save()
return render_to_response('patrons/index.html',
context_instance=RequestContext(request))

#html
<body>
<h1>/Picture Taker/</h1>



<form aciton="." name="patron" method="post" >
{% csrf_token %}

<label>
<div>name</div> <input type="text" name="name" id="name" value="{{name}}">
</label>
<label>
<div>email</div> <input type="text" name="email" id="email" value="{{email}}">
</label>

<div class="error">{{error}}</div>
<input type="submit" value="Submit">
</form>

</body>

任何帮助将不胜感激

最佳答案

所有的

post = request.POST
name = post['name']
email = post['email']
f = PatronForm(request.Post)
new_patron = f.save()

可以重写为(注意 request.POST 的情况):
f = PatronForm(request.POST)
new_patron = f.save()

但是您应该在保存之前检查表单中的错误,因此:
f = PatronForm(request.POST)
if f.is_valid():
new_patron = f.save()

您的表单标签中也有一个错字,它应该是“action”,而不是“aciton”。您在模板中的 {{ error }} 不涉及您 View 中的任何内容。在调试时,让表单自行呈现可能会有所帮助,例如:
{{ form.as_p }}

这样您就可以看到表单提交中的任何错误。

关于django - 在 Django 中使用 ModelForm 添加到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10834923/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com