ModelForm 外键字段尚未加载

ModelForm foreignkey field not loaded yet

我正在尝试开发一种工作记录跟踪器类型的应用程序,与票务跟踪器非常相似。每个 'ticket' 可以有多个员工拥有的笔记(员工在已安装到工单跟踪器中的不同应用程序中进行跟踪)。

MySite
  |___WorkRecords
     |__models.py
     |__views.py
     |__etc..    //standard app stuff
  |___emp #the uncreative name for the employee manager app
     |__         //standard stuff again...

模型内:

WorkRecords.models.py

class WorkRecord(models.Model):
    issuedate = models.DateField('date first issued',
             editable = False, default = timezone.now)
    owner = models.ForeignKey('emp.Employee', related_name='work_owner',
            on_delete=models.PROTECT)
    other_irrelevant_header_data...

    ....

class WorkRecordNote(models.Model):
    ref_wr = models.ForeignKey(WorkRecord, on_delete=models.CASCADE)
    note_text = models.CharField(max_length=1000)
    author = models.ForeignKey('emp.Employee', related_name='note_author',
            on_delete=models.PROTECT)

#Form class for the Work Record
class EditWR(ModelForm):
    class Meta:
        model = WorkRecord
        fields = '__all__'

emp.models.py

class Employee(models.Model)
    data stuff

目前,模型已经全部迁移,但数据还没有输入到表中(MySQL表都在,匹配模型等...但表中还没有数据)

现在我已经得到了模型并尝试了模型形式,我已经尝试了 makemigrations,但是我得到了一个错误回溯...

ValueError: Cannot create form field for 'owner' yet, because its related model u'emp.Employee' has not been loaded yet

我检查了我的 mysite/settings.py 以确保安装了应用程序,并且配置文件都在那里:

...
INSTALLED_APPS = [
    'WorkRecords.apps.WorkrecordsConfig',
    'emp.apps.EmpConfig',
    etc...
]
...

对我来说,这听起来像是它无法创建表单,因为数据库中没有任何数据 'loaded',但我从 Django 中了解到的其他信息表明它不应该关心然而。那是准确的吗?或者还有什么我想念的吗?

编辑: 我对 WorkRecord 的模型进行了更改,在一定程度上解决了问题(至少错误不再存在,但我不知道副作用)

class WorkRecord(models.Model):
    ...
    owner=models.ForeignKey('emp.Employee', related_name='work_owner',
            on_delete=models.PROTECT, editable=False) #Added the editable=False
    ...

其他一切都保持不变,但这次 makemigrations 没有抛出错误。这里的推理是什么?

尝试更改已安装应用的顺序:

INSTALLED_APPS = [
    emp.apps.EmpConfig, # first
    WorkRecords.apps.WorkrecordsConfig,
    etc...
]