【发布时间】:2014-05-14 09:35:32
【问题描述】:
我的 Django 项目有一个“标签”字段,用户可以在其中为他们的帖子添加标签。目前,这存储在我的模型中的 models.CharField(max_length=200) 字段中。
我想要做的是,当帖子显示时,每个单词都打印有自己的 URL,以便按该特定标签对帖子进行排序。例如,每个帖子还有一个“Category”models.CharField,他们可以在其中从下拉列表中选择一个类别,该下拉列表被制成帖子中的 URL。
例如在我的 Views.py 中:
@login_required
def category(request, category):
thisuser = request.user
if request.method == "POST":
category = request.POST['category']
else:
category = ''
following = Follow.objects.filter(follower=thisuser).order_by('-pubdate')
followers = Follow.objects.filter(who_following=thisuser).order_by('-pubdate')
posts = Post.objects.filter(category__contains=category)
args = {'posts': posts, 'thisuser': thisuser, 'following': following, 'followers': followers}
args.update(csrf(request))
args['category'] = category
return render_to_response('lobby.html', args)
在我的模板中:
<a href="/lobby/posts/category/{{post.category|lower}}/">Category: {{post.category}}</a>
是否有一个 {% for %} 模板标签我可以用逗号分隔标签字段中的值,然后将它们中的每一个呈现为它们自己的实例?还是我必须做其他事情,比如为标签创建一个关系数据库(因为一个帖子可以有多个标签),然后通过帖子 ID 对它们进行迭代?
【问题讨论】:
-
"是否有
{% for %}模板标签..."?好吧,you didn't look very hard! -
我想问题是如何将它变成 django 可以迭代的列表?现在它正在将“网站,更新”之类的内容保存到该字段中,但我希望 django 将其视为一个列表,以便我可以对其进行迭代。这就是我感到困惑的地方。
-
@Two-BitAlchemist,重读整句话。他正在寻找的不仅仅是 {% for %} 标签
-
@SohanJain 我确实读了整句话。我无法说明 OP 正在寻找什么,因为缺少
Tag的代码(它只是在某处被描述为models.CharField),这就是我评论(未回答)的原因我能理解的部分——是否有像{% for %}这样的模板标签可以遍历列表?是的。它在 Django 的默认标签和过滤器列表中。
标签: django