Python ValueError:字段“id”需要一个数字,但得到了“正在处理”

Python ValueError:字段“id”需要一个数字,但得到了“正在处理”,python,django,Python,Django,我将在DigitalOcean上部署我的django应用程序。一切都很顺利,除了下面的错误,我的问题是:我在哪里可以找到这个错误的来源,实际上是在哪个文件中 Operations to perform: Apply all migrations: admin, auth, ccapp, contenttypes, sessions Running migrations: Applying ccapp.0009_auto_20191207_2148...Traceback (most re

我将在DigitalOcean上部署我的django应用程序。一切都很顺利,除了下面的错误,我的问题是:我在哪里可以找到这个错误的来源,实际上是在哪个文件中

Operations to perform:
  Apply all migrations: admin, auth, ccapp, contenttypes, sessions
Running migrations:
  Applying ccapp.0009_auto_20191207_2148...Traceback (most recent call last):
  File "/home/progbash/ccproject/env/lib/python3.6/site-packages/django/db/models/fields/__init__.py", line 1768, in get_prep_value
    return int(value)

ValueError: invalid literal for int() with base 10: 'Processing'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "manage.py", line 21, in <module>
    main()
  File "manage.py", line 17, in main
    execute_from_command_line(sys.argv)
  File "/home/progbash/ccproject/env/lib/python3.6/site-packages/django/core/management/__init__.py", line 401, in execute_from_command_line
    utility.execute()
  File "/home/progbash/ccproject/env/lib/python3.6/site-packages/django/core/management/__init__.py", line 395, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
...
  File "/home/progbash/ccproject/env/lib/python3.6/site-packages/django/db/models/fields/__init__.py", line 2361, in get_db_prep_value
    value = self.get_prep_value(value)
  File "/home/progbash/ccproject/env/lib/python3.6/site-packages/django/db/models/fields/__init__.py", line 1772, in get_prep_value
    ) from e
ValueError: Field 'id' expected a number but got 'Processing'.

问题出在迁移文件中。我刚刚打开并将默认值从字符串类型更改为整数。

问题出在迁移文件中。我刚刚打开并将默认值从字符串类型更改为整数。

检查您的所有项目是否都有id

检查您的所有项目是否都有id

只需删除除init python文件外的所有迁移文件run python manage.py makemigrations然后python manage.py migrate

只需删除除init之外的所有迁移文件python文件运行python manage.py makemigrations然后运行python manage.py migrate

对于简单的CBV,如TemplateView或ListView,我遇到了相同的问题,它不需要强制参数。我很确定这个问题来自url解释。对于简单的ListView,如

class ProfileList(generic.ListView):
    model = get_user_model()
网址

path('profile_list/dummy', ProfileList.as_view(), name='profile_lv'),
而lv'get'id应该是一个错误,但是下面的字段是一个'id'get'error。其中profile_lv是url的名称

path('profile_list', ProfileList.as_view(), name='profile_lv'),

在路径工作后添加任何带有斜杠/的内容

像TemplateView或ListView这样的简单CBV也有同样的问题,它不需要强制参数。我很确定这个问题来自url解释。对于简单的ListView,如

class ProfileList(generic.ListView):
    model = get_user_model()
网址

path('profile_list/dummy', ProfileList.as_view(), name='profile_lv'),
有效,而下面的一个无效,错误是:字段“id”需要一个数字,但是得到了“profile\u lv”。其中profile_lv是url的名称

path('profile_list', ProfileList.as_view(), name='profile_lv'),

在路径工作后添加任何带有斜杠/的内容

什么都不做有两种方法: 1删除所有迁移并在终端中键入:python3 manage.py makemigrations,然后是python3 manage.py migrate,然后是runserver

2刚刚打开并将默认值从字符串类型更改为整数

在我看来,选择第一种选择是因为它是安全的


谢谢

什么都不做有两种方法: 1删除所有迁移并在终端中键入:python3 manage.py makemigrations,然后是python3 manage.py migrate,然后是runserver

2刚刚打开并将默认值从字符串类型更改为整数

在我看来,选择第一种选择是因为它是安全的


感谢

分享解决我收到的类似错误的方法: 在我的例子中,收到了相同的错误,因为我直接使用字段值创建模型,而没有指定字段名,所以ID总是将第一个字段作为默认ID=field1。 通过将属性名称也添加到即时创建中,问题得以解决

是:

解决者:

model_instant = YourModel(field1 = field1, field2 = field2,...etc)

执行此操作,然后按照上面建议的方法执行:1删除dB文件,2删除迁移,然后3执行makemigrations your_app_name,然后4次迁移,然后5次运行服务器,您就可以开始了。

只需分享解决方案,该解决方案解决了我收到的类似错误: 在我的例子中,收到了相同的错误,因为我直接使用字段值创建模型,而没有指定字段名,所以ID总是将第一个字段作为默认ID=field1。 通过将属性名称也添加到即时创建中,问题得以解决

是:

解决者:

model_instant = YourModel(field1 = field1, field2 = field2,...etc)

执行此操作,然后按照上面建议的方法执行:1删除数据库文件,2删除迁移,然后3执行makemigrations your_app_name,然后执行4次迁移,然后运行服务器,您就可以开始了。

请删除最近创建的迁移文件,然后运行python manage.py makemigrations和python manage.py migrate。我认为您的问题会解决的。请立即尝试。

请删除最近创建的迁移文件,然后运行python manage.py makemigrations和python manage.py migrate。我想你的问题会解决的。请现在试试。

我也多次遇到这个问题,我只是简单地删除了我项目中除init.py文件之外的所有迁移文件。然后运行“python manage.py makemigrations”,然后运行“python manage.py migrate”,就是这样…

我也多次遇到这个问题,我只是简单地删除了项目中除init.py文件之外的所有迁移文件。然后运行“python manage.py makemigrations”,然后运行“python manage.py migrate”,就是这样…

转到迁移文件,找到生成的名称id,然后用处理器或其他名称替换id,或者删除定义为详细名称的id

`python manage.py makemigrations`
`python manage.py migrate`
`python manage.py runserver`

转到迁移文件,找到生成的名称id,然后用processor或其他名称替换id,或者在定义为verbose_name时将其删除

`python manage.py makemigrations`
`python manage.py migrate`
`python manage.py runserver`

正如utilde所说,删除migrations directory的内容(init.py除外)和_pycacheinit…的内容(init除外)。。。。文件 然后是迁移和偏头痛
再次删除。

如utilde所述,删除除init.py之外的migrations directory的内容,以及除init.py之外的_pycache的内容。。。。文件
然后进行迁移并再次迁移。

您可能正在使用类似于SomeModel.objects.filterid=bla的东西进行过滤,其中bla是一个现在包含处理的变量。可能错误位于触发错误的视图中。以下是我的视图的一部分:def indexrequest:context={'questions':Question.objects.all,'applicators':applicator.objects.filterstatus=1,'empty_cards':range4-applicator.objects.filterstatus=1.count}这是完整的回溯吗?i、 e.op上第一行ValueError之前还有其他内容吗?请在ccapp/migrations中发布您的迁移文件,其名称以0009_auto_20191207_2148开头。这就是根本问题所在。@Exprator我们不关心模型,实际上,问题是在迁移过程中。您可能正在使用类似于SomeModel.objects.filterid=bla的东西进行过滤,bla是一个现在包含处理的变量。可能错误位于触发错误的视图中。以下是我的视图的一部分:def indexrequest:context={'questions':Question.objects.all,'applicators':applicator.objects.filterstatus=1,'empty_cards':range4-applicator.objects.filterstatus=1.count}这是完整的回溯吗?i、 e.op上第一行ValueError之前还有其他内容吗?请在ccapp/migrations中发布您的迁移文件,其名称以0009_auto_20191207_2148开头。这就是根本问题所在。@Exprator实际上,我们不关心模型,问题在于迁移。您是从哪个迁移文件进行更改的?您是从哪个迁移文件进行更改的?答案既没有用处也没有帮助。答案既没有用处也没有帮助。我也遇到了同样的问题。通过传递命名参数解决了这个问题。我也面临同样的问题。它是通过传递命名参数来解决的。