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

Django问答Web应用如何将搜索标签对应的答案跳转至独立页面展示

解决方案

要实现搜索页仅展示问题标题、点击跳转独立新页查看对应答案,按以下步骤修改即可:

1. 补全Answers模型(若未完成)

你当前的Answers模型缺少存储答案内容的字段,先补充字段后执行python manage.py makemigrations和python manage.py migrate更新数据库:

# models.py
class Answers(models.Model):
    quest = models.ForeignKey(Questions,on_delete=models.CASCADE)
    ans = models.TextField(default='') # 新增存储答案内容的字段

2. 新增问题详情页路由

在项目的urls.py中添加详情页的访问路由,绑定问题ID参数:

# urls.py
urlpatterns = [
    # 原有其他路由
    path('question/<int:qid>/', views.question_detail, name='question_detail'),
]

3. 新增详情页视图函数

在views.py中添加详情页的处理逻辑,根据传入的问题ID查询对应问题和关联答案:

# views.py 新增以下代码
def question_detail(request, qid):
    # 查询对应问题
    question = Questions.objects.get(id=qid)
    # 查询该问题对应的所有答案
    answers = Answers.objects.filter(quest_id=qid)
    context = {'question': question, 'answers': answers}
    return render(request, 'question_detail.html', context)

4. 修改搜索页模板

删除搜索页中遍历展示答案的代码,将问题标题改为跳转链接,添加target="_blank"实现新页面打开:

<!-- search.html 修改后内容 -->
{% for qas in objs %}
<a href="{% url 'question_detail' qas.id %}" target="_blank">{{ qas.title }}</a>
<br>
{% endfor %}
<!-- 原来遍历answer的代码直接删除即可 -->

5. 新建问题详情页模板

在模板目录下新建question_detail.html,用于展示问题详情和对应答案:

<!-- question_detail.html -->
<h1>{{ question.title }}</h1>
<p>提问用户:{{ question.user.username }}</p>
<h3>答案:</h3>
{% for ans in answers %}
<div>{{ ans.ans }}</div>
<hr>
{% empty %}
<p>该问题暂无答案</p>
{% endfor %}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 23:27:03