0

我在 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)

这已经在数据库中创建了一个表。

表格.py

class UserInformationForm(ModelForm):
    class Meta:
        model = UserInformation
        fields = '__all__'

视图.py

def home(request):
    form = UserInformationForm()
    variables =  { 'form': form, 'user': request.user }
    return render(request,'home.html',variables)

主页.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 %}

但是当我单击提交按钮时,它不会将数据插入我的表中。

4

2 回答 2

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)
于 2017-01-23T03:05:20.867 回答
0

第一个:您需要将 urls.py 添加到您的应用程序第二个:您需要将您的 views.py 更改为像这样

`
    info = UserInformation()
    lastName = request.POST.get('lastName')
    ...
    info.save()
`
于 2017-01-23T03:07:04.937 回答