请教Django 报错误t

各位大神晚安,目前正在使用django架设练习网页,在设置Django urls name一直发生错误,请问有无熟悉django的大神可以给点方向!

以下是我的程式码

urls.py

from django.contrib import adminfrom django.urls import pathfrom . import viewsurlpatterns = [    path('', views.showtemplate),    path('<int:id>/', views.singleVendor, name='vendor_id'), # 这一行    path('create', views.vendor_create_view),]`

views.py

from django.shortcuts import renderfrom .models import Vendorfrom .forms import VendorForm #import相对应的model Formfrom .forms import RawVendorForm # 新增 RawVendorFormfrom django.http import Http404from django.shortcuts import get_object_or_404# Create your views here.def showtemplate(request):    vendor_list = Vendor.objects.all() # 把所有 Vendor 的资料取出来    context = {'vendor_list': vendor_list} # 建立 Dict对应到Vendor的资料,    return render(request, 'vendors/vendor_detail.html', context)#建立class [vendor_create_view]def vendor_create_view(request):    form = RawVendorForm(request.POST or None)    if form.is_valid():        Vendor.objects.create(**form.cleaned_data)        form = RawVendorForm()    context = {        'form' : form    }    return render(request, "vendors/vendor_create.html", context)def singleVendor(request, id):    vendor_list = get_object_or_404(Vendor, id=id)    # try:    #     vendor_list = Vendor.objects.get(id=id)    # except Vendor.DoesNotExist:    #     raise Http404    context = {        'vendor_list': vendor_list    }    return render(request, 'vendors/vendor_detail.html', context)

modles.py

from django.db import models# 新增from django.contrib import admin# 额外 import 这个过滤套件from django.utils.translation import gettext_lazy as _from django.urls import reverse #新增# Create your models here.class Vendor(models.Model):vendor_name = models.CharField(max_length = 20) # 摊贩的名称store_name = models.CharField(max_length = 10) # 摊贩店家的名称phone_number = models.CharField(max_length = 20) # 摊贩的电话号码address = models.CharField(max_length = 100) # 摊贩的地址     #新增def get_absolute_url(self):return reverse("vendor_id", kwargs={"id": self.id})

vedor_detail.html

<!DOCTYPE html><html lang="en" dir="ltr">  <head>    <meta charset="utf-8">    <title></title>  </head>  <body>{% extends "base.html" %}{% block title %} My store {% endblock %}{% block content%}{% for vlist in vendor_list %}  <h1> 店家 : {{vlist.vendor_name}} </h1>  <p> <a href= {{ vlist.get_absolute_url }}> More detail...</a> </p>{% endfor %}{% endblock %}  </body></html>

错误原因:TypeError at /vendor/1/
'Vendor' object is not iterable
Request Method:GET
Request URL:http://127.0.0.1:8000/vendor/1/
Django Version:2.2.3
Exception Type:TypeError
Exception Value:
'Vendor' object is not iterable

有google原因是因对跌代,试着修改vedor_detail,还是会显示失败,请各位大神帮帮忙


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章