如果我在/notes/get/1/where id=1中,我在Note.html中创建了一个“Delete Note”链接。我需要它从数据库和应用程序中删除当前注释,并重定向到/notes/all。你能帮我删除def中的代码吗?
型号.py:
class Note(models.Model):
title = models.CharField(max_length=200)
body = models.TextField()
cr_date = models.DateTimeField(auto_now_add=True)
网址.py:
urlpatterns = patterns('',
url(r'^all/$', 'note.views.notes'),
url(r'^get/(?P<note_id>\d+)/$', 'note.views.note'), #
url(r'^language/(?P<language>[a-z\-]+)/$', 'note.views.language'), #
url(r'^create/$', 'note.views.create'),
url(r'^delete/$', 'note.views.delete'), <--------------------------
url(r'^search/$', 'note.views.search_titles'),
)
视图.py:
def delete(??????):
????? <-------------------------------------------
return HttpResponseRedirect('/notes/all')
在
urls.py
中确保在删除对象之前检查了用户权限,您可以使用@permission\u required decoratorhttps://docs.djangoproject.com/en/1.5/topics/auth/default/#the-permission-required-decorator。如果不检查,用户可以轻松删除所有笔记。
通常,使用POST或DELETE请求而不是GET从数据库中删除对象是一个好主意。想象一下google bot抓取你的站点并访问notes/delete/2。
必须将变量放入url:
那么视图函数应该是这样的:
您不需要手工编写这些视图,因为django附带了这些视图,它们被称为generic views。
例如,贡献的删除视图执行以下操作:
以下是您将如何使用它:
在您的
views.py
中:创建
delete_note.html
模板,该模板只有以下内容:在您的
urls.py
中:现在,假设您想要显示一个链接来删除一个注释,比如在您的
index.html
:相关问题 更多 >
编程相关推荐