我在Django(1.10.5)/ Python 3.4中创建了我的第一个应用程序。我有一个登录页面和一个注册页面。哪个工作正常。
我可以创建新用户并使用该ID登录。现在登录后我希望用户填写一份包含一些信息的表格,然后点击提交。并且信息应该存储在数据库中。
所以我先创建了一个模型: Model.py
class UserInformation(models.Model):
firstName = models.CharField(max_length=128)
lastName = models.CharField(max_length=128)
institution = models.CharField(max_length=128)
institutionNumber = models.CharField(max_length=128)
cstaPI = models.CharField(max_length=128)
orchidNumber = models.CharField(max_length=128)
这在DB中创建了一个表。
forms.py
class UserInformationForm(ModelForm):
class Meta:
model = UserInformation
fields = '__all__'
views.py
def home(request):
form = UserInformationForm()
variables = { 'form': form, 'user': request.user }
return render(request,'home.html',variables)
home.html的
{% extends "base.html" %}
{% block title %}Welcome to Django{% endblock %}
{% block head %}Welcome to Django{% endblock %}
{% block content %}
<p> Welcome {{ user.username }} !!! <a href="/logout/">Logout</a><br /><br /> </p>
<form method="post" action=".">{% csrf_token %}
<table border="0">
{{ form.as_table }}
</table>
<input type="submit" value="Submit" style="position:absolute"/>
</form>
{% endblock %}
但是当我点击提交按钮时,它不会将数据插入我的表格。
答案 0 :(得分:1)
这里是答案,我们需要使用request.POST
def home(request):
if request.method == 'POST':
form = UserInformationForm(request.POST)
form.save()
return HttpResponseRedirect('/home/')
else:
form = UserInformationForm()
variables = { 'form': form, 'user': request.user }
return render(request,'home.html',variables)
答案 1 :(得分:0)
第一个:您需要将urls.py添加到您的应用中 第二个:你需要改变你的views.py来像这样lool
`
info = UserInformation()
lastName = request.POST.get('lastName')
...
info.save()
`