2017-01-23 74 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() 
` 
相關問題