Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django (GCBV)如何调用自定义方法发布博客(UpdateView)_Django_Django Class Based Views_Url Pattern_Resolveurl - Fatal编程技术网

Django (GCBV)如何调用自定义方法发布博客(UpdateView)

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

你好

除了Java,我还将学习一些Python/Django,因为我工作的公司也将使用Django。然而,我正试图弄清楚如何使用基于类的泛型视图。我希望有人能给我一些信息,引导我朝着正确的方向解决我的问题

我有一个小博客应用程序,其中包含CRUD(创建、读取、更新、删除)功能和GCBV(基于类的通用视图)。在详细视图中,我有一个要发布的链接:

{%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,我真的不知道为什么。不管怎样,它现在正在工作。再次感谢!