代码之家  ›  专栏  ›  技术社区  ›  shanyu

在一个通用的app-django中实现模板标记

  •  0
  • shanyu  · 技术社区  · 15 年前

    我开发了一些基于contrib comments应用程序的代码,比如ajax请求的处理程序。这段代码在一个单独的应用程序中,我们可以称之为“comments2”。项目的url配置的结构是这样的,所有对/评论的调用都指向这个应用程序的视图。这是没有问题的。

    {% display_flagged_comments 'market' %}
    

    这个标签被放置在主应用程序的相关模板中。

    如上面的代码所示,我通过什么模型( 在本例中)comments属于,因此comments2应用程序仍然是通用的。

    我有三个问题需要指导:

    首先,我觉得模型的论点被引用了( )使代码稍微不那么优雅。在代码中,参数转换为模型:

    #template tag
    def show_comments(modelname):
        model = ContentType.objects.get(model=modelname)
        ... # get comments and return them 
    

    第二,因为所有的请求 /评论 我需要为这个页面设计一个不同的url(它位于主应用程序内部),比如/managecomments。我觉得这样做也不雅观。

    第三,我想知道我是否遵循了正确的道路,或者是否有更好的方法来实现我正在尝试的工作。

    提前谢谢。

    1 回复  |  直到 15 年前
        1
  •  0
  •   Antti Rasinen    15 年前

    ContentTypeManager在某种程度上解决了您的第一个问题。你可以用这个方法 get_for_model ,它同时接受类或实例。更多信息请访问 the contettypes docs