我开发了一些基于contrib评论应用程序的代码,例如ajax请求的处理程序。此代码位于单独的应用程序中,我们可以将其称为“comments2”。项目的url配置的结构使得对/ comments的所有调用都定向到此应用程序的视图。这没有问题。
最近我制作了一个新页面,显示标记为不合适的评论。
我认为最好通过编写包含模板标签来完成,然后写一个。它的工作原理如下:
{% display_flagged_comments 'market' %}
此标记位于主应用程序的相关模板中。
如上面的代码所示,我传递了评论所属的模型(在本例中为市场),以便comments2应用程序保持通用。
我在这里有三个问题需要指导:
首先,我觉得模型参数在引号内('市场')会使代码变得不那么优雅。在代码中,参数转换为模型:
#template tag
def show_comments(modelname):
model = ContentType.objects.get(model=modelname)
... # get comments and return them
其次,由于所有带 / comments 的请求都定向到comment2应用,我需要为此页面设置一个不同的网址(它位于主应用内),例如/ managecomments。我觉得这样做也很不优雅。
第三,我想知道我是否遵循了正确的道路,或者是否有更好的方法来实现我想要做的事情。
提前致谢。
答案 0 :(得分:0)
ContentTypeManager已经为您解决了第一个问题。您可以使用方法get_for_model
,它同时接受类或实例。阅读更多the contettypes docs。