[英]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.