You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django新闻列表页无法跳转至单篇文章详情页问题求助

问题原因及修复方案

1. 核心错误:模板链接变量引用错误

列表页模板遍历新闻列表时,循环内的单条新闻变量名为news,但你在a标签中引用了不存在的post变量,导致链接href属性为空/无效,点击后无跳转效果。

2. 其他需修正的问题

  • a标签不需要methods="post"属性,超链接默认发起GET请求,该属性不符合HTML规范
  • models.py中__str__、get_absolute_url方法缩进错误,目前被包含在Meta内部类中,需调整为News类的同级方法

修正后的代码

模板文件修正

<div class="col-lg-4 col-md-6 grid-item">
{% for news in news %}
   <div class="blog-item large-item set-bg">{{ news.image }}
<!-- 把post改成news,删除无效的methods属性 -->
       <a href="{{news.get_absolute_url}}">
             <div class="categories">{{ news.title }}</div>
                <h5>{{ news.text| linebreaks|truncatechars:200 }}</h5>
       </a>
            <div>
                {{ news.publish }}
                {{ news.tag }}
            </div>
    </div>
 {%endfor%}
</div>

Models.py缩进修正

class News(models.Model):
    title = models.CharField(max_length=1000, verbose_name='Название')
    slug = models.SlugField(max_length=200, db_index=True)
    image = models.ImageField(upload_to='articles/', verbose_name='Фото')
    publish = models.DateTimeField(default=timezone.now, verbose_name='Дата публикации')
    author = models.ForeignKey(User, related_name='news', on_delete=models.CASCADE, verbose_name='Автор', null=True)
    text = models.TextField(verbose_name='Текст')
    tags = models.ManyToManyField(Tag, related_name='news', verbose_name='Тэг')
    created = models.DateTimeField(auto_now_add=True, verbose_name='Дата создания')
    updated = models.DateTimeField(auto_now=True, verbose_name='Дата обнавления')
    status = models.CharField(max_length=30, choices=STATUS_CHOICES, default='опубликован', verbose_name='Статус')

    class Meta:
        ordering = ('title',)
        verbose_name = 'Новости'
        verbose_name_plural = 'Новости'

    # 调整缩进,和Meta类同级,成为News类的成员方法
    def __str__(self):
        return self.title

    def get_absolute_url(self):
        return reverse('post', kwargs={'post_slug': self.slug})

修改完成后刷新页面即可正常跳转。

内容的提问来源于stack exchange,提问作者lisa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 15:06:07