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

在通用app-django中实现模板标记,django,django-templates,Django,Django Templates,我开发了一些构建在contrib comments应用程序上的代码,比如ajax请求的处理程序。此代码位于单独的应用程序中,我们可以将其称为“comments2”。该项目的url配置的结构应确保所有对该应用程序的调用/评论都指向该应用程序的视图。这是没有问题的 最近我制作了一个新页面,显示标记为不合适的评论 我认为最好通过编写一个包含模板标签来完成,并编写了一个。它的工作原理如下: {% display_flagged_comments 'market' %} 此标签放置在主应用程序的相关模板

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

最近我制作了一个新页面,显示标记为不合适的评论

我认为最好通过编写一个包含模板标签来完成,并编写了一个。它的工作原理如下:

{% display_flagged_comments 'market' %}
此标签放置在主应用程序的相关模板中

从上面的代码中可以看出,我传递了注释所属的模型(在本例中为Market),以便comments2应用程序保持通用性

我这里有三个问题需要指导:

首先,我觉得引号中的模型参数('market')使代码不那么优雅。在代码中,参数转换为模型:

#template tag
def show_comments(modelname):
    model = ContentType.objects.get(model=modelname)
    ... # get comments and return them 
其次,由于所有带有/comments的请求都指向comment2应用程序,因此我需要为此页面设计一个不同的url(它位于主应用程序中),例如/managecomments。我觉得这样做也不雅观

第三,我想知道我是否遵循了一条正确的道路,或者是否有更好的方法来实现我正在尝试做的事情


提前感谢。

ContentTypeManager已经为您解决了第一个问题。您可以使用方法
get\u for_model
,该方法接受类或实例。阅读更多信息