2017-01-23 95 views
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) 

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

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 %} 

但是当我点击子mit按钮,它不会将数据插入到我的表中。

+0

您没有收到视图上的信息。你如何期望它将其插入到数据库中?阅读关于在Django中处理request.POST'的更多信息 – karthikr

+0

我只是想将这些信息放在我的数据库中..我认为这将是直接的。 –

+0

是的,它很直接,但你需要在视图中处理它。在这里阅读更多:https://docs.djangoproject.com/en/1.10/topics/forms/#the-view – karthikr

回答

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) 
0

第一:你需要你应用程式 第二添加urls.py:你需要改变你的views.py到LOOL像这样

` 
    info = UserInformation() 
    lastName = request.POST.get('lastName') 
    ... 
    info.save() 
` 
相关问题