如何重写基于函数的视图,只将对象更新为基于类的视图?像这样的东西(为教程写了这个)。
from django.contrib.auth.decorators import permission_required
@permission_required("catalog.mark_returned")
def mark_returned(request, pk):
bk = BookInstance.objects.get(pk=pk)
if bk.status == "a":
#some tests here
bk.status = "a"
bk.due_back = None
bk.borrower = None
bk.save()
return redirect("on-loan")
总的来说,将泛型用于那样的事情是否有意义? 因为目前,我只使用通用列表和详细视图。 对不起初级问题:)
答案 0 :(得分:0)
这是一个没有模板或表格的视图;除了基本的View类本身之外,有点排除了几乎所有通用视图的用处。
您可以使用功能视图的逻辑覆盖 C lass B ased V iew的调度方法(因为请求方法无关紧要)。
可以通过self.args[0]
或self.kwargs['_name_of_captured_variable_here']
访问pk值。
有意义吗?总的来说,我会说熟悉CBV,特别是通用的那些对你来说会长期保持良好状态。但是,在您的特殊情况下,通过在功能视图上使用CBV可以获得或者失去任何东西。这种观点太过简单了。