Django (GCBV)如何调用自定义方法发布博客(UpdateView)
你好 除了Java,我还将学习一些Python/Django,因为我工作的公司也将使用Django。然而,我正试图弄清楚如何使用基于类的泛型视图。我希望有人能给我一些信息,引导我朝着正确的方向解决我的问题 我有一个小博客应用程序,其中包含CRUD(创建、读取、更新、删除)功能和GCBV(基于类的通用视图)。在详细视图中,我有一个要发布的链接:Django (GCBV)如何调用自定义方法发布博客(UpdateView),django,django-class-based-views,url-pattern,resolveurl,Django,Django Class Based Views,Url Pattern,Resolveurl,你好 除了Java,我还将学习一些Python/Django,因为我工作的公司也将使用Django。然而,我正试图弄清楚如何使用基于类的泛型视图。我希望有人能给我一些信息,引导我朝着正确的方向解决我的问题 我有一个小博客应用程序,其中包含CRUD(创建、读取、更新、删除)功能和GCBV(基于类的通用视图)。在详细视图中,我有一个要发布的链接: {%url'博客:发布'blog.pk%} 我想使用它,比如: url(r'^(?P[0-9]+)/publish/$,xxx,name='publish
{%url'博客:发布'blog.pk%}
我想使用它,比如:
url(r'^(?P[0-9]+)/publish/$,xxx,name='publish')
我就是不能让它工作。我已经尝试(和simular尝试)在Update(UpdateView)类中创建一个名为publish(self,**kwargs)的方法,并使用url模式调用它:
url(r'^(?p[0-9]+)/publish/$,views.Update.publish(),name='publish')
这显然不起作用,否则你现在就不会读这篇文章;)我已经阅读了相当多的文档/google/etc,但大部分是基于函数的,或者教程在CRUD之后停止。你能告诉我正确的方向(提示/清晰的教程/示例)或解释我在哪里做了错误的选择吗?提前谢谢 用于更新,但您可以查看。它用于创建对象
您还需要了解,您不能调用方法,因为很难想象它必须如何工作。GCBV只是一系列已经编写好的方法,可以让你的生活更轻松。您可以覆盖GCBV基本方法并创建自己的方法,然后可以在视图中使用,但不能在URL中调用它们。谢谢您的回复。创建博客时,它始终处于未发布状态,“详细信息”视图显示要发布的链接。如何使该链接正确发布博客?@Nrzonline,您只需创建一个链接,并将
url
映射到该链接,在该链接中您将捕获对象的pk
。在此之后,您需要编写一个视图,该视图将使用url中捕获的pk
获取对象实例,并更新对象的字段object.published=True
,然后您只需保存对象并返回HttpResponseRedirect
。在这种情况下,可以使用函数基视图。如果您不想重新加载页面,也可以使用ajax,但这取决于您想做什么。谢谢。对我来说,我觉得我必须把它包装成GCBVs,我真的不知道为什么。不管怎样,它现在正在工作。再次感谢!