Django Hashtags

时间:2012-11-14 23:03:17

标签: django hashtag

Hey StackOverFlowers :)我一直在研究博客图片应用程序。我一直在寻找有关如何为Django实现hashtagging功能的解决方案,以便用户可以为图片创建主题标签,还可以对基于主题标签的图片进行排序/检索。

我看过GitHub上的django-hastags:https://github.com/semente/django-hashtags但是在阅读完文档之后,我迷失了:(

我有一个用户模型,我有一个博客图片模型。下面我发布了来自models.py的代码,用于我的两个模型:

from django.db import models
from django.contrib.auth.models import User
from django.contrib.sites.models import Site
from bookmarks.handlers import library

class Bloguser(models.Model):
    user = models.OneToOneField(User, primary_key=True)
    bio = models.CharField(max_length=140, blank=True)
    favorites = models.ManyToManyField('BlogPicture', through='Favorites', related_name = 'picture_favs')
    likes = models.ManyToManyField('BlogPicture', related_name='likedby', blank=True)
    userPic = models.CharField(max_length=128, blank=True)
    userCover = models.CharField(max_length=128, blank=True)
    phoneNum = models.CharField(max_length=20, blank=True)

def __unicode__(self):
        return self.user.username

class BlogPicture(models.Model):
    title = models.CharField(max_length=40)
    bloguser = models.ForeignKey(Bloguser, related_name = 'shot_owner')
    postTime = models.DateTimeField(auto_now_add=True)
    description = models.CharField(max_length=100, blank=True)
    url = models.CharField(max_length=128)

def json_feat(self):
     return{
        'title': self.title,
        'photo-url': self.url,

    }

def __unicode__(self):
     return self.title

从这里开始,有人能指出我如何实现hashtagging的正确方向吗?对不起,如果我不够清楚,请发表评论并告诉我,以便我可以让你和其他人更清楚我的问题!谢谢!

1 个答案:

答案 0 :(得分:6)

使用django标记库怎么样?例如django-taggit

从项目文档中无耻地提取:

>>> apple = Food.objects.create(name="apple")
>>> apple.tags.add("red", "green", "delicious")
>>> apple.tags.all()
[<Tag: red>, <Tag: green>, <Tag: delicious>]
>>> apple.tags.remove("green")
>>> apple.tags.all()
[<Tag: red>, <Tag: delicious>]
>>> Food.objects.filter(tags__name__in=["red"])
[<Food: apple>, <Food: cherry>]

说实话,django-hashtags库似乎只是在将“hash”添加到“tag”之前就采用了“酷”因素,但看起来并不是很好。

它确实提供了一些不错的功能(例如基于标签的列表视图),但这可以轻松通过几行ListView来实现。