Django中form表单提交出现错误,如何更改?

Django中form表单提交出现错误,如何更改?

创建用户信息,提交返回用户列表出现错误
Django中form表单提交出现错误,如何更改?
Cannot assign "'2'": "UserInfo.depart" must be a "Department" instance.

不知道什么原因?


回答:

这个UserInfo中的depart,应该是外键吧,我猜测应该是,

models.UserInfo.objects.create(name=name,password=password,...,depart=depart)

# 这里的depart赋值的应该是一个实例,你那里写的depart=depart_id,所以提示" "UserInfo.depart" must be a "Department" instance."

可以这样更改试试

depart=models.Department.objects.filter(depart_id=depart_id)

models.UserInfo.objects.create(name=name,password=password,...,depart=depart)

因为不知道你具体的表结构,只能猜测着来,错误的提示,就是depart必须是一个Department的实例。


回答:

关于1楼的问题:
Django的查询结果有两种类型,分别是QuerySet和模型类的instance

query_set = Department.objects.filter(id=1)

instance1 = query_set[0]

instance2 = Department.objects.get(id=1)

type(query_set), type(instance1), type(instance2)

Out[6]:

(django.db.models.query.QuerySet,

xx.models.Department,

xx.models.Department)

query_set

Out[7]: <QuerySet [<Department: Department object (1)>]>

instance1

Out[8]: <Department: Department object (1)>

  • 使用filter查询的返回结果可以为空,可以多个. 为空不报错
  • 使用get查询的返回结果为空则报错,多个只返回查询的第一个

以上是 Django中form表单提交出现错误,如何更改? 的全部内容, 来源链接: utcz.com/p/938260.html

回到顶部