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

标签 python django forms web integer

我有一个问题。我正在尝试使用 django 来编辑表单。但是当我转到网址进行编辑时,例如:/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

这是我的 urls.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"),
]

这是我的views.py 的一部分,其中我有我正在尝试构建的函数:

 def edit_clasificacion(request, id_category):
   clasificacion = Clasificacion.objects.get(id=id)
   if request.method == 'GET':
       form = ClasificacionForm(instance=clasificacion)
   else:
       form = ClasificacionForm(request.POST, instance=clasificacion)
       if form.is_valid():
           form.save()
       return redirect('article:index')
   return render(request, 'adminview/clasification.html', {'form':form})

这是我的 forms.py:

类 ClasificacionForm(forms.ModelForm):

class Meta:
    model = Clasificacion

    fields = [
        'nombre_clasificacion',
        ]
    labels = {
        'nombre_clasificacion': 'Nombre de categoría',
    }
    widgets = {
        'nombre_clasificacion': forms.TextInput(attrs={'class':'form-control'})
    }

有什么帮助吗?非常感谢!

最佳答案

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

要修复您的代码,请使用您在 View 签名中定义的 id_category 参数:

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

关于python - 尝试在 django 中执行表单时,int() 参数必须是字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55544040/

相关文章:

python - 导入pytorch microsoft visual C++ Redistributable 时未安装

python - Matplotlib pyplot.title(string) 返回错误

python - Python read()在readlines()工作时引发MemoryError

python - Django ORM 魔法。错误还是功能?

django - 内容类型和表示

javascript - 填写表格 - Smarty

python - 我如何知道该方法是从哪里调用的?

python - 如何在 Django 中创建对象队列?

php - 提交表单并使用 PHP 通过电子邮件发送

javascript - 提醒用户在不保存表单更改的情况下离开页面时,避免使用表单字段