【问题标题】:is it possible to use class based view instead of function based view wagtail?是否可以使用基于类的视图而不是基于函数的视图 wagtail?
【发布时间】:2018-09-26 07:46:08
【问题描述】:

我仍在努力将 django wagtail 集成到现有项目中。

我只在我的博客页面上使用 wagtail。我想创建一个表单来从我的 wagtail 页面为我的博客创建新帖子。我创建它的方式是使用可路由页面。这是我的一些代码

我使用this 作为我的参考

models.py

class BlogIndex(RoutablePageMixin, Page):
    ...

    @route(r'^send-post/$', name='send_posts')
    def submit(self, request):
        from .views import submit_news
        return submit_news(request, self)
    ...

class BlogPage(Page):
    ...

forms.py

class NewsPageForm(forms.ModelForm):
    ...

views.py

def submit_blog(request, blog_index):
    ...

是否可以将 submit_blog 功能更改为创建视图? 因为我之前尝试过创建视图并尝试过类似的操作,但它不起作用,因为它会递归调用 models.py 中的 BlogPage 页面

models.py

class BlogIndex(RoutablePageMixin, Page):
...

    @route(r'^send-post/$', BlogCreate.as_view(), name='send_posts')

views.py

class BlogCreate(CreateView):
...

非常感谢

【问题讨论】:

    标签: python django django-class-based-views wagtail


    【解决方案1】:

    我想你快到了,但是@route 需要装饰一个视图函数(而不是将视图作为装饰器参数传递)。

    试试这个:

    class BlogIndex(RoutablePageMixin, Page):
    ...
        @route(r'^send-post/$', name='send_posts'):
        def submit(self, request):
            blog_create_view = BlogCreate.as_view()
    
            return blog_create_view(request, self)
    

    代替:

    class BlogIndex(RoutablePageMixin, Page):
    ...
    
        @route(r'^send-post/$', BlogCreate.as_view(), name='send_posts')
    

    【讨论】:

      猜你喜欢
      • 2013-01-25
      • 1970-01-01
      • 2020-12-25
      • 2014-02-16
      • 1970-01-01
      • 2023-03-06
      • 2021-01-24
      相关资源
      最近更新 更多