sug*_*uff 3 python django django-templates django-models django-views
我是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>
Run Code Online (Sandbox Code Playgroud)
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/')
Run Code Online (Sandbox Code Playgroud)
应用网址:
urlpatterns = patterns('',
url(r'^$', views.index, name='index'),
url(r'^$', views.register, name='register'),
url(r'^$', views.projectz_save, name='project_save'),
Run Code Online (Sandbox Code Playgroud)
)
网站网址:
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
url(r'^project_view/', include('project_view.urls')),
Run Code Online (Sandbox Code Playgroud)
我甚至将一些愚蠢的重定向代码添加到google.com只是为了查看views.py是否正在执行,但它不起作用,尽管我说没有错误消息,页面只是刷新.我确定我做错了很容易解决,但我是一个noobie.:d
好吧,我想也许我发现了问题.在view没有执行,因为你已经有确切定义的三个URL regex在您的项目urls.py:
urlpatterns = patterns('',
url(r'^$', views.index, name='index'),
url(r'^$', views.register, name='register'),
url(r'^$', views.projectz_save, name='project_save'),
)
Run Code Online (Sandbox Code Playgroud)
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'),
)
Run Code Online (Sandbox Code Playgroud)
这样,您可以在表单匹配url正则表达式的情况下执行该projectz_save方法.views.pyaction
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
3469 次 |
| 最近记录: |