【问题标题】:Return a list of objects from selected tags从选定的标签返回对象列表
【发布时间】:2014-05-08 17:50:48
【问题描述】:

我正在尝试找出我认为很容易找到答案的问题。我在一个项目中使用 django-taggit,我只想在选择标签时返回一个对象列表。我试过这个:

How do I create list and detail views for django-taggit?

但我无法让它工作。它只是呈现一个空白页面。我认为问题出在我的模板代码中。也许有人可以指出我的方向。任何帮助将不胜感激..非常感谢。

这是我的代码:

models.py

from taggit.managers import TaggableManager
from django.template.defaultfilters import slugify
from ckeditor.fields import RichTextField 
from taggit.models import TaggedItemBase

class Tagged(TaggedItemBase):
content_object = models.ForeignKey('Shows')

class Shows(models.Model):

title = models.CharField(max_length=40)
slug = models.SlugField(null=True, blank=True, unique=True)
tags = TaggableManager(through=Tagged)
hosts = models.ManyToManyField('Host', blank=True, null=True)
featured = models.BooleanField(default=False)
thumbnail = FilerImageField(related_name="thumbnail", help_text="Image should be: 550 X 350.")
playing_next = models.DateTimeField(null=True, blank=True)
description = RichTextField()

views.py:

class TaggedList(ListView):
queryset = Shows.objects.all()
paginate_by = 10
template_name = "tagged.html"

def get_queryset(self):
    return Shows.objects.filter(tags__name__in=[self.kwargs['tag']])

urls.py:

urlpatterns = patterns('radio.views',
                   url(r'^$', 'main', name='app_main'),
                   url(r'^(?P<slug>[^\.]+)/detail/$', 'detail_view', name='detailsview'),
                   url(r'^(?P<tag>\w+)/$', TaggedList.as_view()),
                   url(r'^tagged/(?P<tag>\w+)/$', TaggedList.as_view())

                   )

【问题讨论】:

    标签: python django django-taggit


    【解决方案1】:

    模板代码:

    {% for objects in object_list %}
        {{ objects.title }}
        {{ objects.tag }}
        {{ objects.slug }} 
         ------
    {% endfor %}
    

    【讨论】:

    • 好吧,好像有误会 :) 我需要做的是返回与标签相关的节目或对象的列表。不是标签列表。我一直在努力弄清楚。
    • 好吧,我的错。我再次编辑了答案,所以看看。我不确定那是你想要的。希望它会有所帮助
    • 不用担心。这个很酷。我可能应该更清楚。我将尝试在另一个使用 Django-taggit 的应用程序中查找代码并从那里获取它。无论如何感谢您的帮助:)
    【解决方案2】:

    您是否在模板中迭代了object_list?因为LiseView 中的默认列表名称是object_list: doc: https://docs.djangoproject.com/en/dev/ref/class-based-views/generic-display/#listview

    【讨论】:

    • 这也是我的问题。弄清楚模板代码应该是什么。
    猜你喜欢
    • 1970-01-01
    • 2016-01-26
    • 2013-06-09
    • 1970-01-01
    • 2013-07-24
    • 1970-01-01
    • 2018-01-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多