【发布时间】:2018-05-16 15:23:05
【问题描述】:
Python 菜鸟在这里尝试学习一些非常简单的东西。
我正在尝试创建一个基本表单,该表单从用户那里获取一些个人信息并将其保存到一个 sqlite3 表中,并以用户的用户名作为主键。
我的 models.py 如下所示:
class userinfo(models.Model):
user = models.OneToOneField(settings.AUTH_USER_MODEL, primary_key= True,
on_delete=models.CASCADE)
name = models.CharField(max_length = 200, blank = True)
email = models.EmailField(max_length= 300, default = 'Null')
phone = models.CharField(max_length= 10, default = 'Null')
def __unicode__(self):
return self.user
forms.py:
class NewList(forms.ModelForm):
class Meta:
model = userinfo
exclude = {'user'}
views.py
def newlist(request):
if request.method == 'POST':
form = NewList(request.POST)
if form.is_valid():
Event = form.save(commit = False)
Event.save()
return redirect('/home')
else:
form = NewList()
return render(request, 'home/newlist.html', {'form': form})
html:
{% load static %}
<form action="/home/" method="post">
{% csrf_token %}
{{ form.as_p }}
<input type="submit">
</form>
urls.py 也是,但我不知道这会有什么帮助:
urlpatterns = [
url(r'^newlist/$', views.newlist, name='newlist')
]
所以当我转到 url 时,我看到了表单。然后我可以填写表格,但是当我提交表格时,数据不会进入数据库。
我在这里做错了什么?
提前致谢!
【问题讨论】:
-
不是问题,但您确实应该给事物起一致的名称。你的模型叫做userinfo,但是表单叫做NewList,保存的结果叫做Event。
-
那你看到了什么,任何错误等等。你的行动路径是否有效?
标签: python html django forms django-models