保存数据后,我只想选择V_insert_data并获取其ID。
我该如何解决这个问题?有什么想法吗?
V_insert_data = StudentsEnrollmentRecord(
.....
)
V_insert_data.save()
enrollment = StudentsEnrollmentRecord.objects.filter(id = V_insert_data)
return render("",{"enrollment":enrollment})
我得到这个错误
答案 0 :(得分:2)
您可以尝试
enrollment = StudentsEnrollmentRecord.objects.filter(id = V_insert_dat.id)
答案 1 :(得分:1)
您不需要第二次获取对象。 V_insert_dat
是 StudentEnrollmentRecord
,因此您可以将其实现为:
V_insert_data = StudentsEnrollmentRecord.objects.create(
# …
)
return render(request, '', {'enrollment': V_insert_data})
enrollment
是单个StudentsEnrollmentRecord
对象,因此您不应对其进行迭代。
如果id
不是主键(可能不建议使用),则可以获取对象的.id
,并确实在.filter(…)
查询中传递该对象:< / p>
V_insert_data = StudentsEnrollmentRecord.objects.create(
# …
)
enrollment = StudentsEnrollmentRecord.objects.filter(id=V_insert_data.id)
return render(request, '', {'enrollment': enrollment})
答案 2 :(得分:0)
该错误表明,在过滤器查询的参数中,您传递的是id
而不是V_insert_data
,实际上它是您在此处定义的StudentsEnrollmentRecord
模型对象
V_insert_data = StudentsEnrollmentRecord(
.....
)
给一个属性,而不是给整个对象,例如id = V_insert_data.id。
enrollment = StudentsEnrollmentRecord.objects.filter(id = V_insert_data
.id)
此过滤器的作用与SQL语句 select 子句中的where / limit相同。
更新:
代替创建后的过滤查询,您还可以使用create&get的组合,如下所示: