我仍在努力将django wagtail集成到现有项目中。
我只在我的博客页面上使用w。并且我想创建一个表单以从我的w页面上为我的博客创建新帖子。我创建此方法的方法是使用routablepage。这是我的一些代码
我使用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函数更改为create view? 因为我之前曾经尝试过创建视图并尝试类似的操作,但是它不起作用,因为它将在models.py
中调用BlogPage页面是递归的models.py
class BlogIndex(RoutablePageMixin, Page):
...
@route(r'^send-post/$', BlogCreate.as_view(), name='send_posts')
views.py
class BlogCreate(CreateView):
...
非常感谢
答案 0 :(得分:0)
我认为您已经快到了,但是@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')