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