Python 尝试在django中执行表单时,int()参数必须是字符串

Python 尝试在django中执行表单时,int()参数必须是字符串,python,django,forms,web,integer,Python,Django,Forms,Web,Integer,我有个问题。我正在尝试用django做一个编辑表单。但当我转到url进行编辑时,例如:/adminview/edit/1/ 我得到了信息: TypeError at /adminview/edit/1/ int() argument must be a string, a bytes-like object or a number, not 'builtin_function_or_method' Request Method: GET Request URL: http://127.0

我有个问题。我正在尝试用django做一个编辑表单。但当我转到url进行编辑时,例如:/adminview/edit/1/

我得到了信息:

TypeError at /adminview/edit/1/
int() argument must be a string, a bytes-like object or a number, not 
'builtin_function_or_method'
Request Method: GET
Request URL:    http://127.0.0.1:8000/adminview/edit/1/
Django Version: 2.1.5
Exception Type: TypeError
这是我的URL.py:

app_name = 'adminview'

urlpatterns = [
url(r'^$', index_admin, name="adminview"),
url(r'^clasification', clasification, name="clasification"),
url(r'^edit/(?P<id_category>\d+)/$', edit_clasificacion, name="edit_clasificacion"),
]
这是我的forms.py:

类分类信息(forms.ModelForm):


有什么帮助吗?非常感谢

您的问题是您正在使用
Clasificacion.objects.get(id=id)
,但是
id
从未定义过(并且是保留的关键字/函数)

要修复代码,请使用视图签名中定义的
id\u category
参数:

def edit_clasificacion(request, id_category):
    clasificacion = Clasificacion.objects.get(id=id_category)
    ....

控制台上的堆栈跟踪显示了什么?您可以包括表单吗?您是指
Clasificacion.objects.get(id=id\u category)
id
是一个内置函数,您似乎没有对其进行阴影处理。@markwalker\uu我已经包含forms.py以便您可以看到它…@andreihondrari它没有说什么,控制台说它工作正常。我尝试过,但出现了一个新错误,“Clasificacion匹配查询不存在”,因为我数据库中的主ID被称为“ID”…:/@LuisBermúdez的意思是,数据库中没有ID为
1
Clasificacion
对象(因为这是您在URL中使用的ID)。尝试使用您知道存在的ID的url,它应该可以工作。没问题!一个补充-最好使用
clasificacion=get\u object\u或_404(clasificacion,id=id\u category)
,因为如果url中有错误的id,它将给出正确的错误消息和http 404状态。您可以在此处阅读更多信息:
class Meta:
    model = Clasificacion

    fields = [
        'nombre_clasificacion',
        ]
    labels = {
        'nombre_clasificacion': 'Nombre de categoría',
    }
    widgets = {
        'nombre_clasificacion': forms.TextInput(attrs={'class':'form-control'})
    }
def edit_clasificacion(request, id_category):
    clasificacion = Clasificacion.objects.get(id=id_category)
    ....