使用Django与Python编辑表单时FieldError报错求助
解决Django FieldError: 无法将关键字‘rowid’解析为字段的问题
嘿,这个问题很常见,我来帮你快速搞定!
错误根源
你遇到的FieldError是因为你的Studentapp模型里根本没有定义rowid这个字段,但你在视图里却用它来查询对象:
item = get_object_or_404(Studentapp, rowid=id)
看你提供的models.py代码,Studentapp的可选字段只有address、course、id、name、pub_date、roll,Django找不到rowid,自然就报错了。
修复方案
Django会自动给每个模型添加一个名为id的主键字段(除非你手动指定了其他主键),所以你只需要把查询条件里的rowid改成id就行:
item = get_object_or_404(Studentapp, id=id)
或者更通用的写法,用pk(primary key的缩写,不管你模型的主键叫什么名字都能生效):
item = get_object_or_404(Studentapp, pk=id)
额外提醒
如果你的URL配置里传递的参数名是rowid(比如path('editrow/<int:rowid>/', views.editrow, name='editrow')),那你需要把视图函数的参数也改成rowid,然后查询时用id=rowid:
def editrow(request, rowid): item = get_object_or_404(Studentapp, id=rowid) # 后续编辑逻辑...
这样修改后,点击更新按钮就不会再出现这个错误啦!
内容的提问来源于stack exchange,提问作者Aditya
相关产品推荐
相关产品推荐

