我有一个简单的标签模型和一个简单的项目模型。
在项目模型中,我有一个标签模型m2m。
我想用标签返回所有项目。我快到了。
现在,下面的视图返回基数为10的int()的无效文字:'cheap'
所以,它有正确的slug,它正在进行查询,但它正在尝试根据m2m标记的id获取项目列表。
任何建议都非常感谢。
我的标签型号: class Tag(models.Model):
"""
A basic tag model for projects
"""
name = models.CharField(max_length=100, unique=True)
slug = models.CharField(max_length=100)
description = models.TextField(blank=True)
class Meta:
ordering = ('name',)
verbose_name = _('Tag')
verbose_name_plural = _('Tags')
def __unicode__(self):
return self.name
@models.permalink
def get_url_path(self):
return ('TagDetail', (), {'slug': self.slug})
我的网址:
# tags/<slug>/ The detail view for an archived project
url(regex=r'^tags/(?P<slug>[\w-]+)/$',
view=TagDetail.as_view(),
name='tag_detail',
),
我的观点我想弄明白:
class TagDetail(ListView):
""" Get all projects for a tag """
template_name = "projects/TagDetail.html"
def get_queryset(self):
tags = get_list_or_404(Project, tags=self.kwargs['slug'], displayed=True)
paginate_by = 10
@method_decorator(login_required)
def dispatch(self, *args, **kwargs):
return super(TagDetail, self).dispatch(*args, **kwargs)
答案 0 :(得分:1)
假设您的项目模型看起来像这样
class Project( models.Model ):
tags=models.ManyToManyField( Tag )
匹配标签的slug
def get_queryset( self ):
return get_list_or_404(Project, tags__slug=self.kwargs['slug'], displayed=True)
唯一的变化是tags__slug
。