【发布时间】:2013-07-16 14:03:04
【问题描述】:
在 Django 中向基于类的通用视图添加“取消”按钮的最佳方式是什么?
在下面的示例中,我希望取消按钮将您带到success_url 而不删除对象。我尝试在模板中添加一个按钮<input type="submit" name="cancel" value="Cancel" />。我可以通过覆盖 AuthorDelete 类的 post 方法来检测是否按下了此按钮,但我不知道如何从那里重定向。
示例 myapp/views.py:
from django.views.generic.edit import DeleteView
from django.core.urlresolvers import reverse_lazy
from myapp.models import Author
class AuthorDelete(DeleteView):
model = Author
success_url = reverse_lazy('author-list')
def post(self, request, *args, **kwargs):
if request.POST["cancel"]:
return ### return what? Can I redirect from here?
else:
return super(AuthorDelete, self).post(request, *args, **kwargs)
示例 myapp/author_confirm_delete.html:
<form action="" method="post">{% csrf_token %}
<p>Are you sure you want to delete "{{ object }}"?</p>
<input type="submit" value="Confirm" />
<input type="submit" name="cancel" value="Cancel" />
</form>
(示例改编自docs)
【问题讨论】:
标签: django django-class-based-views