尽管有几个类似的问题被发布,但这些问题都与我的案例不一样。
我有一个像这样的模型:
class Person(models.Model):
"""Definition of persons that will fulfill a role in a committee
or will be in a way associated with a committee as an administrator
"""
ClientId = models.ForeignKey('clients.Client', on_delete=models.CASCADE,
to_field='id')
PersNumber = models.PositiveIntegerField(null=False)
PersSurName = models.CharField(max_length=40, null=False)
PersNames = models.CharField(max_length=40, null=False)
我在clientid和persnumber上设置了记录的唯一性。
我在数据库中创建了3条记录。
一路上,我开始相信,我可以使用记录的自动生成ID作为个人编号(我正在学习Django)。
我从我的模型中删除了persnumber并进行了makemigrations。
在我开始迁移之前一切都很好…
我得到以下错误:
django.core.exceptions.FieldDoesNotExist: Person has no field named 'PersNumber'
关于如何克服这个错误的任何想法
完整跟踪如下:
Operations to perform:
应用所有迁移:admin、auth、clients、contenttypes、komadm_conf、sessions
正在运行迁移:
应用komadm_conf.0017_auto_20180830_1806…回溯(最近一次呼叫最后一次):
文件“c:\applicationdef\za\co\drie_p\komadm in.db\komadmin\komadmtest\komadm_app\komadm_env\lib\site packages\django\db\models\options.py”,第564行,在get_字段中
返回self.fields_map[字段名称]
keyError:'个人号码'
在处理上述异常期间,发生了另一个异常:
回溯(最近一次呼叫的最后一次):
文件“manage.py”,第15行,in
从命令行(sys.argv)执行
文件“c:\applicationdef\za\co\drie_p\komadm in.db\komadm\komadmtest\komadm_app\komadm_env\lib\site packages\django\core\management_uuu init_uuuu.py”,第381行,从命令行执行
实用程序.execute()
文件“C:\applicationdef\za\co\drie_p\komadm in.db\komadmin\komadmtest\komadm_app\komadm_env\lib\site packages\django\core\management_uuuu init_uuuy”,第375行,在执行中
self.fetch_命令(子命令)。从_argv(self.argv)运行_
文件“c:\applicationdef\za\co\drie_p\komadm in.db\komadm\komadmtest\komadm_app\komadm_env\lib\site packages\django\core\management\base.py”,第316行,从\argv运行
self.execute(*参数,**命令选项)
文件“c:\applicationdef\za\co\drie_p\komadm in.db\komadmin\komadmtest\komadm_app\komadm_env\lib\site packages\django\core\management\base.py”,第353行,在执行中
输出=self.handle(*参数,**选项)
文件“C:\applicationdef\za\co\drie_p\komadm in.db\komadmin\komadmtest\komadm_app\komadm_env\lib\site packages\django\core\management\base.py”,第83行,包装
res=手柄功能(*args,**kwargs)
文件“c:\applicationdef\za\co\drie_p\komadm in.db\komadmin\komadmtest\komadm_app\komadm_env\lib\site packages\django\core\management\commands\migrate.py”,第203行,在handle中
fake_initial=假_initial,
文件“c:\applicationdef\za\co\drie_p\komadm in.db\komadmin\komadmtest\komadm_app\komadm_env\lib\site packages\django\db\migrations\executor.py”,第117行,位于migrate中
state=self.\u迁移所有\u转发(state,plan,full \u plan,fake=fake,fake \u initial=fake \u initial)
文件“c:\applicationdef\za\co\drie_p\komadm.db\komadm\komadmtest\komadm_app\komadm_env\lib\site packages\django\db\migrations\executor.py”,第147行,位于“migrate\u all”转发中
state=self.apply_迁移(state,migration,fake=fake,fake_initial=fake_initial)
文件“c:\applicationdef\za\co\drie_p\komadm in.db\komadmin\komadmtest\komadm_app\komadm_env\lib\site packages\django\db\migrations\executor.py”,第244行,在apply_migration中
state=migration.apply(状态,模式编辑器)
文件“c:\applicationdef\za\co\drie_p\komadm in.db\komadmin\komadmtest\komadm_app\komadm_env\lib\site packages\django\db\migrations\migration.py”,第124行,位于apply中
operation.database_forwards(self.app_label,schema_editor,old_state,project_state)
数据库中的文件“c:\applicationdef\za\co\drie_p\komadm in.db\komadmin\komadmtest\komadm_app\komadm_env\lib\site packages\django\db\migrations\operations\fields.py”,第150行,转发
schema_editor.remove_field(从_model,从_model.meta.get_field(self.name))。
文件“c:\applicationdef\za\co\drie_p\komadm in.db\komadmin\komadmtest\komadm_app\komadm_env\lib\site packages\django\db\backends\sqlite3\schema.py”,第318行,在remove_字段中
self.\u重新创建表格(model,delete\u field=field)
文件“c:\applicationdef\za\co\drie_p\komadm in.db\komadm\komadmtest\komadm_app\komadm_env\lib\site packages\django\db\backends\sqlite3\schema.py”,第257行,在重新创建表中
自我创建模型(临时模型)
文件“c:\applicationdef\za\co\drie_p\komadm in.db\komadmin\komadmtest\komadm_app\komadm_env\lib\site packages\django\db\backends\base\schema.py”,第300行,位于create_模型中
columns=[模型_meta.get _field(field).column for field in fields]
文件“C:\applicationdef\za\co\drie_p\komadm in.db\komadmin\komadmtest\komadm_app\komadm_env\lib\site packages\django\db\backends\base\schema.py”,第300行,位于
columns=[模型_meta.get _field(field).column for field in fields]
文件“c:\applicationdef\za\co\drie_p\komadm in.db\komadmin\komadmtest\komadm_app\komadm_env\lib\site packages\django\db\models\options.py”,第566行,在get_字段中
raise fielddoesnotexist(“%s没有名为“%s”的字段%(self.object\u name,field\u name))
django.core.exceptions.fielddoesnotexist:个人没有名为“persnumber”的字段