簡體   English   中英

Django如何在視圖中保存模型

[英]Django how to save model in view

我是Django的新手。 我遇到了一個無法在views.py中保存模型的問題。 這個概念是有一個輸入字段,用戶可以在其中鍵入名稱,然后使用request.POST.get('attribute_name')我可以保存我的模型,但它不起作用。 當我打印該模型中所有對象的列表時,即使在所有這些過程中我都沒有收到錯誤消息,也沒有任何內容。

模板:

<form id="save_form" method="post" action="{% url 'project_view.views.projectz_save' %}">
{% csrf_token %}
<table>
<tr>
    <td>Project Name</td>
    <td><input name="projectz_name"/></td>
</tr>
</table>
<input type="submit" value="Save" />
</form>

views.py:

def projectz_save(request):
try: 
    p = Project(name=request.POST.get('projectz_name'))
    p.save()
    return redirect('http://www.google.com/')
except:
    return redirect('http://www.google.com/')

應用網址:

urlpatterns = patterns('',
url(r'^$', views.index, name='index'),
url(r'^$', views.register, name='register'),
url(r'^$', views.projectz_save, name='project_save'),

網站網址:

urlpatterns = patterns('',

url(r'^admin/', include(admin.site.urls)),
url(r'^project_view/', include('project_view.urls')),

我甚至將一些愚蠢的重定向代碼添加到google.com只是為了查看views.py是否正在執行,但它不起作用,盡管我說沒有錯誤消息,頁面只是刷新。 我確定我做錯了很容易解決,但我是一個noobie。 :d

好吧,我想也許我發現了問題。 view未執行,因為您已在項目urls.py定義了三個具有完全regex URL:

urlpatterns = patterns('',
url(r'^$', views.index, name='index'),
url(r'^$', views.register, name='register'),
url(r'^$', views.projectz_save, name='project_save'),
)

Django通過以他們出現的方式迭代模式匹配它的url,因此在該文件中所有url將匹配index 這可能就是為什么頁面看起來令人耳目一新的原因。 嘗試稍微修改一下:

urlpatterns = patterns('',
url(r'^$', views.index, name='index'),
url(r'^register$', views.register, name='register'),
url(r'^save$', views.projectz_save, name='project_save'),
)

這樣,如果表單的action與url正則表達式匹配,則可以在views.py執行projectz_save方法。

希望這可以幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM