Python ValueError:字段';id';应为一个数字,但得到';这是我的梦想;。通过控制台添加项目后

Python ValueError:字段';id';应为一个数字,但得到';这是我的梦想;。通过控制台添加项目后,python,django,Python,Django,我正试图通过命令行将一项添加到db.sqlite3中 In [10]: m = Meldung('Die erste Meldung', zeitstempel=datetime.today(), text='Nun kommt das klassische Hallo-Welt-Beispiel.') In [11]: m.save() 但我犯了这个错误: ValueError: Field 'id' expected a number but got 'Die erste Meldung

我正试图通过命令行将一项添加到db.sqlite3中

In [10]: m = Meldung('Die erste Meldung', zeitstempel=datetime.today(), text='Nun kommt das klassische Hallo-Welt-Beispiel.')

In [11]: m.save()
但我犯了这个错误:

ValueError: Field 'id' expected a number but got 'Die erste Meldung'.
contentobject Meldung字段id下方的Inside migrations\0001_initial.py被声明为auto_created=True,但它似乎没有按预期工作

我怎样才能解决它

  • 预期结果
    字段“id”由db.sqlite3自动生成

  • 环境
    Python 3.8.2
    Django 3.1.3

  • models.py

  • 迁移\0001_initial.py

如果按位置传递值(因此不带参数名称),则第一个参数是
id
,因此将
'Die erste Meldung'
分配给
字段,而不是
title

您可以通过将其作为命名参数传递来解决此问题:

m = Meldung(
    title='Die erste Meldung',
    zeitstempel=datetime.today(),
    text='Nun kommt das klassische Hallo-Welt-Beispiel.'
)
m = Meldung(
    None,
    'Die erste Meldung',
    zeitstempel=datetime.today(),
    text='Nun kommt das klassische Hallo-Welt-Beispiel.'
)

但是,正如您自己所发现的那样,它不清楚每个值在
Meldung
对象中代表什么。

这很好:m=Meldung(tittel='Die erste Meldung',zeitstempel=datetime.today(),text='Nun kommt das klassiche Hallo Welt beispel'
m = Meldung(
    title='Die erste Meldung',
    zeitstempel=datetime.today(),
    text='Nun kommt das klassische Hallo-Welt-Beispiel.'
)
m = Meldung(
    None,
    'Die erste Meldung',
    zeitstempel=datetime.today(),
    text='Nun kommt das klassische Hallo-Welt-Beispiel.'
)