Django自动建议匹配内容的策略

时间:2012-01-28 19:21:59

标签: django

我正在考虑将自定义编写的PHP CMS移植到Django中。 CMS目前具有的一项功能是图像上传功能。我写了一篇文章,用信息标记,然后为它选择一张照片。如果系统中的任何照片已添加到带有与新标签共同的标签的文章中,它也会建议该文章的照片。如果没有匹配,则可以添加新图像。

如果这没有意义,我们可以说我将文章标记为Bruce SpringsteenThe BeatlesLed Zeppelin。下次我添加标签为The Beatles的文章时,应该建议我使用为第一篇文章添加的图片。

实现这个的最佳Django方法是什么?我查看了Photologue应用程序并对其进行了集成,我知道它有标记支持(这里的问题是我使用django-taggit,而Photologue支持django-tagging)。一种方法可能就是自己构建它 - 当用户上传文章时,我会在保存它之后运行一个钩子以将标签与图像相关联。我只是不确定如何根据该信息在管理工具中自动提供图像。

非常感谢任何想法/方法。

2 个答案:

答案 0 :(得分:2)

这几乎肯定是你自己必须建立的东西。 Django有适量的图书馆(你已经清楚地发现了)。与其他解决方案不同,它没有很多东西让你100%达到你想要的解决方案(而像Drupal这样的东西可能会让你100%的方式)。

您可能需要做的事情(在高级别)是这样的:

  • 创建一个AJAX视图,该视图将当前标记作为参数,并对现有帖子进行查询,以查看哪些标记匹配并从这些帖子返回图像。
  • 在视图中使用jQuery / javascript在添加标记时在页面上调用AJAX视图
  • 使用jQuery更新页面上的<div>并显示视图返回的所有图片

这是similar example可能有助于您入门。

您可以将django-ajax视为您的请求的帮助程序库,但绝对没有必要。

答案 1 :(得分:1)

你的图像模块和任何其他django模块之间的钩子可以使用django的contenttypes framework实现,它还提供了一些有用的实例方法来返回相关/钩子对象。