问题描述
我正在尝试创建与Django相互链接的网页。我创建了一个包含以下元素的模型:标题,摘要,description01,description02。在首页上,我显示标题和摘要,这似乎工作正常。但是,我想要标题和摘要后的链接,它们链接到带有description01的页面,然后链接到带有description02的页面。这就是我遇到的问题。我为description01.html创建了一个文件,在views.py中为其创建了一个函数,在urls.py中创建了一个路径,并添加了指向home的链接。当我尝试打开主页时,出现错误:noreverseMatch / 找不到带有参数“(3,)”的“ description01”。尝试了1种模式:['articles / $'] 代码和屏幕截图: home.html
<h1>home</h1>
{% for outline in outline %}
{{ outline.title }}<br>
{{ outline.summary }}<br>
<a href="{% url 'description01' outline.id %}">LInk</a>
{% endfor %}
viwes.py
from django.shortcuts import render
from .models import Outline
def home(request):
outline = Outline.objects.all()
return render(request,'articles/home.html',{'outline': outline})
def description01(request):
outline = Outline.description01
return render(request,'articles/description01.html',{'outline': outline})
urls.py
from django.contrib import admin
from django.urls import path,include
from django.conf.urls.static import static
from django.conf import settings
from articles import views
urlpatterns = [
path('admin/',admin.site.urls),path('',views.home,name='home'),path('articles/',views.description01,name='description01'),]
models.py
from django.db import models
class Outline(models.Model):
title = models.CharField(max_length=100)
summary = models.CharField(max_length=250,default="")
description01 = models.CharField(max_length=250,default="")
description02 = models.CharField(max_length=250,default="")
description01.html
<h1>description01</h1>
{% for outline in outline %}
{{ outline.description01 }}<br>
{% endfor %}
解决方法
{% for outline in outline %}
可能会给您一个错误,因为您可能在调用内部轮廓或全局轮廓。尝试将其更改为:
{% for otlne in outline %}
{{ otlne.description01 }}<br>
{% endfor %}
另外,outline = Outline.description01
可能出了点问题,不是吗:
def description01(request):
outline_objs = Outline.objects.all()
context = {
'd_01': [outline.description01 for outline in outline_objs]
}
return render(request,'articles/description01.html',context=context)
然后:
{% for d in d_01 %}
{{ d }}<br>
{% endfor %}
这样,将在HTML文件中访问的d_01
键只是所有Outlines对象中description01
的列表。