Django int()参数必须是字符串、类似字节的对象或数字,而不是';对象';

Django int()参数必须是字符串、类似字节的对象或数字,而不是';对象';,django,django-views,Django,Django Views,保存数据后,我只想选择V_insert_data并获取其id 我如何解决这个问题?有什么想法吗 V_insert_data = StudentsEnrollmentRecord( ..... ) V_insert_data.save() enrollment = StudentsEnrollmentRecord.objects.filter(id = V_insert_data) return render("",{"enrollment":enroll

保存数据后,我只想选择V_insert_data并获取其id

我如何解决这个问题?有什么想法吗

 V_insert_data = StudentsEnrollmentRecord(
    .....
        )
    V_insert_data.save()

 enrollment = StudentsEnrollmentRecord.objects.filter(id = V_insert_data)

 return render("",{"enrollment":enrollment})
我得到了这个错误

你可以试试这个

enrollment = StudentsEnrollmentRecord.objects.filter(id = V_insert_dat.id)

您不需要再次获取对象。
V\u insert\u dat
StudentEnrollmentRecord
,因此可以通过以下方式实现:

V_insert_data = StudentsEnrollmentRecord.objects.create(
    # …
)
return render(request, '', {'enrollment': V_insert_data})

错误表明,在筛选器查询的参数中,您传递的不是
id
而是
V\u insert\u data
,它实际上是您在此处定义的
StudentsEnrollmentRecord
模型对象

V_insert_data = StudentsEnrollmentRecord(
   .....
       )
不要给出整个对象,而是给出一个像id=V\u insert\u data.id这样的属性

enrollment = StudentsEnrollmentRecord.objects.filter(id = V_insert_data
.id)
该过滤器的工作原理与SQL语句的select子句中的where/limit相同

更新:

您也可以像下面这样使用create&get组合,而不是创建后的筛选查询:


不太一样。id属性可能不是唯一的,一旦使用id(比如=1)创建了
V_insert_data
,@justin正在尝试获取具有此id的所有对象的列表。@MuhammadHashirHassan:如果
id
不是主键,那么这确实是不同的,但除非指定,这通常是假定的。特别是因为很多Django工具(不幸地)使用
.id
作为主键,而不是使用更安全的
.pk
:)
enrollment = StudentsEnrollmentRecord.objects.filter(id = V_insert_data
.id)