Django NoReverseMatch:试图让slug在临时环境下工作

2024-04-20 12:33:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要创建一个页面,其中将有一个特定标签的文章。在

在模型.py在

class Tag(models.Model):
    title = models.CharField('Title', unique=True, max_length=40, primary_key=True)
    description = models.TextField('Description', max_length=300,
                                   help_text='Short description for this tag')
    tag_slug = models.SlugField()

    def __str__(self):
        return self.title

    def get_absolute_url(self):
        return reverse("tagged_posts", kwargs={"tag_slug": self.tag_slug})

    def save(self, force_insert=False, force_update=False, using=None,
             update_fields=None):
        self.tag_slug = slugify(self.title)
        super(Tag, self).save()

在关心帖子的课堂上,我有一种多对多的关系:

^{pr2}$

在视图.py在

^{3}$

在管理员py我写过tag_slug是预填充字段。在

在网址.py公司名称:

url(r'^tag/(?P<tag_slug>\S+)$', views.tagged_posts, name='tagged_posts'),

模板:

Tagged under
        {% for tag in object.assoc_tags.all %}
            <a href="{% url 'tagged_posts' tag_slug=object.tag_slug %}">{{ tag }}</a>
        {% if not forloop.last %}, {% endif %}
        {% endfor %}

因此,我有这样一个错误:

NoReverseMatch: Reverse for 'tagged_posts' with arguments '()' and keyword arguments '{'tag_slug': ''}' not found. 1 pattern(s) tried: ['blog/tag/(?P\S+)$']**

你能告诉我,我做错什么了吗?在


Tags: pyselftrueurlfortitlemodelsdef
2条回答

这不是很清楚,因为我不认为您发布了正确的视图,但是看起来您在帖子中提到了tag_slug,而不是在标签上。在

<a href="{% url 'tagged_posts' tag_slug=tag.tag_slug %}">

这个家庭教师帮助我解决了我的问题。下面的链接-https://github.com/arocks/qblog/compare/tagview显示添加的标记功能。正如danielroseman所回答的,我在模板中引用了不正确的引用:我引用了一个“object”,而不是tag。在

相关问题 更多 >