为了账号安全,请及时绑定邮箱和手机立即绑定

字段“id”需要一个数字,但得到“create”

字段“id”需要一个数字,但得到“create”

子衿沉夜 2024-01-04 15:38:07
我一直在尝试创建此模型对象,但不断收到此错误:字段“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 变量,这将产生验证问题。


查看完整回答
反对 回复 2024-01-04
  • 1 回答
  • 0 关注
  • 59 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信