【问题标题】:CustomUser matching query does not exist. ERROR( DJANGO)CustomUser 匹配查询不存在。错误(DJANGO)
【发布时间】:2021-07-26 15:57:05
【问题描述】:

当我将表单保存在模板中时。 错误说:

CustomUser 匹配查询不存在。

第 104 行:teacher=CustomUser.objects.get(id=teachers_id)

模型.py

class Subjects(models.Model):
    id=models.AutoField(primary_key=True)
    subject_name=models.CharField(max_length=255)
    course_id=models.ForeignKey(Courses,on_delete=models.CASCADE,default=1)
    teachers_id=models.ForeignKey(CustomUser,on_delete=models.CASCADE)
    created_at=models.DateTimeField(auto_now_add=True)
    updated_at=models.DateTimeField(auto_now_add=True)
    objects=models.Manager()

views.py

def add_subject_save(request):
    if request.method!="POST":
        return HttpResponse("<h2>Method Not Allowed</h2>")
    else:
        subject_name=request.POST.get("subject_name")
        course_id=request.POST.get("course")
        course=Courses.objects.get(id=course_id)
        teachers_id=request.POST.get("teacher")
        teacher=CustomUser.objects.get(id=teachers_id)

        try:
            subject=Subjects(subject_name=subject_name,course_id=course,teachers_id=teacher)
            subject.save()
            messages.success(request,"Successfully Added Subject")
            return HttpResponseRedirect("add_subject")
        except:
            messages.error(request,"Failed to Add Subject")
            return HttpResponseRedirec("add_subject")

我不知道如何解决这个错误。

【问题讨论】:

  • 只需使用python manage.py shell手动检查您通过post请求传递的teacher_id是否退出
  • 请告诉我,我该怎么做?
  • 只需运行上述命令并从&lt;app_name&gt;.model 导入模型,只需将teacher=CustomUser.objects.get(id=teachers_id)replace 教师ID 替换为您通过post 方法传递的值

标签: python django forms web view


【解决方案1】:

据我了解,Django ForeignKeys 存储一个对象,而不是您在 SQL 中使用的整数。我认为teacher=CustomUser.objects.get(id=teachers_id) 是这里的强盗。我会尝试teacher=CustomUser.objects.filter(teacher_id__exact=teacher_id).get()。但是,如果 CustomUser 模型中有多个具有相同教师对象的对象,这会给您一个错误。在Django Docs 上有更多相关信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-22
    • 2015-04-20
    • 2021-12-26
    • 1970-01-01
    • 1970-01-01
    • 2011-07-27
    • 1970-01-01
    相关资源
    最近更新 更多