我一直在嘗試創建此模型對象,但不斷收到此錯誤:字段“id”需要一個數字,但得到“創建”。錯誤圖片分享如下。我正在使用 djangi 3.0.3 view.py 文件:-from django.shortcuts import renderfrom . import modelsfrom django.views.generic import (View,TemplateView,ListView,DetailView,? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? CreateView,UpdateView,DetailView)# Create your views here.class IndexView(TemplateView):? ? template_name = 'index.html'class SchoolListView(ListView):? ? context_object_name = 'schools'? ? model = models.Schoolclass SchoolDetailView(DetailView):? ? context_object_name = 'school_detail'? ? model = models.School? ? template_name = 'basic_app/school_detail.html'class SchoolCreateView(CreateView):? ? fields = ('name','principal','location')? ? model = models.Schoolmodel.pyfrom django.db import modelsfrom django.urls import reverse# Create your models here.class School(models.Model):? ? name = models.CharField(max_length=265)? ? principal = models.CharField(max_length=256)? ? location = models.CharField(max_length=256)? ? def __str__(self):? ? ? ? return self.name? ? def get_absolute_url(self):? ? ? ? return reverse("basic_app:detail", kwargs={'pk':self.pk})class Student(models.Model):? ? name = models.CharField(max_length=256)? ? age = models.PositiveIntegerField()? ? school = models.ForeignKey(School, related_name='student', on_delete=models.CASCADE)? ? def __str__(self):? ? ? ? return self.name
1 回答

慕尼黑5688855
TA貢獻1848條經驗 獲得超2個贊
這看起來像是您的 urls.py 的錯誤。只要確保當您在 urls.py 中提到 URL 路徑時,明確的路徑在前,變量路徑在后。例如,這段代碼會給你一個錯誤:
path('<int:id>/' , view.DetailView.as_view(), name="detail") path('create/' , view.CreateView.as_view(), name="create")
為了避免錯誤,只需更改順序,如下所示:
path('create/' , view.CreateView.as_view(), name="create") path('<int:id>/' , view.DetailView.as_view(), name="detail")
發生這種情況是因為在后面的代碼中,django 將查找路徑 /create,如果無法匹配,它將查找路徑 int:id/。現在,由于 int:id/ 是一個變量,如果 django 首先查找它,它將嘗試將“create”分配給 id 變量,這將產生驗證問題。
添加回答
舉報
0/150
提交
取消