Django标签
嘿,StackOverFlowers:)我一直在开发一个博客图片应用程序。我一直在到处寻找一种解决方案,介绍如何为Django实现hashtagging特性,这样用户就可以为图片创建hashtag,还可以基于hashtag对图片进行排序/检索 我看过GitHub上的django hastags:但即使在阅读了文档之后,我还是迷路了:( 我有一个用户模型和一个博客图片模型。下面我发布了两个模型的mymodels.py代码:Django标签,django,hashtag,Django,Hashtag,嘿,StackOverFlowers:)我一直在开发一个博客图片应用程序。我一直在到处寻找一种解决方案,介绍如何为Django实现hashtagging特性,这样用户就可以为图片创建hashtag,还可以基于hashtag对图片进行排序/检索 我看过GitHub上的django hastags:但即使在阅读了文档之后,我还是迷路了:( 我有一个用户模型和一个博客图片模型。下面我发布了两个模型的mymodels.py代码: from django.db import models from dja
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
从这里,有人能告诉我如何实现hashtaging的正确方向吗?很抱歉,如果我不够清楚,请发表评论并让我知道,这样我可以让您和其他人更清楚地了解我的问题!谢谢!使用django标记库怎么样?例如 无耻地从项目文档中摘录:
>>> 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>]
苹果=食品。对象。创建(name=“苹果”)
>>>苹果。标签。添加(“红色”、“绿色”、“美味”)
>>>apple.tags.all()
[, ]
>>>apple.tags.remove(“绿色”)
>>>apple.tags.all()
[, ]
>>>Food.objects.filter(标记\uuuu name\uuuuu in=[“红色”])
[, ]
老实说,该库看起来只是在将“hash”前置为“tag”时使用了“coolness”因素,但看起来并不太好
它似乎提供了一些很好的功能(例如基于标记的列表视图),但这是用几行代码就能轻松实现的。哦,哇,真的吗?如果我早知道,我就不会浪费这么多时间阅读文档了。你能给我一个非常基本的示例,说明如何基于标记创建列表视图吗?这对我有很大帮助!:)@rgjeya使用
ListView
并使用类似MyTaggedStuff.objects.filter(tags\uu name\uuuu in=[wanted\u tags])
的内容覆盖其get\u queryset
方法,在这里您可以以某种方式(例如URL参数)将wanted\u tags
传递到视图中。多谢了托马斯,您为我省了很多麻烦,你真棒!