g尾可路由页面视图,单击时加载ajax内容

时间:2019-02-28 23:17:10

标签: ajax django wagtail

我有一个应用程序,在其中显示包含故事,视频和文章等内容的贡献者页面。 故事,视频和文章是不同的页面模型。

模板引擎:Jinja
框架:Django
CMS:ag

通过使用以下Ajax设置在urls.py中创建单独的视图和相应的url,我能够成功将ajax内容加载到标签中。

但是如果我尝试使用Wagtails可路由页面功能,我会得到404。

Ajax设置摘录:

settings = jQuery.extend(true, {}, {
                    type: 'get',
                    dataType: 'json',
                    url: vUrl,
                    beforeSend: function (jqXHR, settings) {
                        console.log(`URL ${settings.url}`)
                        $tab.html('<br>');
                        $paneHeader.removeClass(css).addClass(css);
                        $el.trigger('tabsX:beforeSend', [jqXHR, settings]);
                    },
                    success: function (data, status, jqXHR) {
                        setTimeout(function () {
                            // $tab.html(data); //Use Json data instead of html

                            $tab.html(data.html);
                            $pane.tab('show');
                            $paneHeader.removeClass(css);
                        }, 300);
                    },
                    error: function (jqXHR, status, message) {
                        $paneHeader.removeClass(css);
                    },
                }


@route(r'^/contributors/(?P<slug>[-\w]*)/articles')
def show_articles_contributed(self, request):
    if request.is_ajax():
        print("Inside AJAX")
        articles = Contributor.get_articles_by_authors(self.id)
        html = render_to_string("organisms/latest_articles.html", {"objects": articles})
        return JsonResponse({"html": html}, safe=True)
    else:
        return super(ContributorPage, self).serve(request)


从console.log打印的URL
网址/ contributors / test-author / articles

无法加载资源:服务器响应状态为404(未找到)

class ContributorPage(RoutablePageMixin, PhoenixPage):
first_name = models.CharField(max_length=255, blank=True, default="")
last_name = models.CharField(max_length=255, blank=True, default="")
nickname = models.CharField(max_length=1024, blank=True, default="")


PhoenixPage只是带有元数据的基本页面,而元数据实际上使用了基础Wagtail Page类。

任何帮助/指导将不胜感激。

如果问题不清楚,我可以提供更多信息。

谢谢


我发现了问题。
为该主题的将来访客发布描述。

这里不是Ajax代码的问题,但Wagtail路由实现是一个问题。

@route(r'^ / contributors /(?P [-\ w] *)/ articles')<-此路由不适用于ContributorPage

ContributorPage提供类似/ contributor / author_name的URL, 当author_name为ContributorPage slug

我只想将/ articles附加到其中,以获得/ contributor / author_name / articles之类的路由

所以ContributorPage的正确路由是
@route(/ articles)

所以现在我的主要ContributorPage位于/ contributor / author_name 和

使用路由网址(如

)查询Ajax标签 / contributor / author_name / articles
/ contributor / author_name / videos
/ contributor / author_name / stories

以及相应的路线,例如
@route(/ articles)
@route(/ videos)
@route(/ stories)

0 个答案:

没有答案