来自不同应用程序的Django外键是NoneType

时间:2017-08-26 23:35:55

标签: python django django-models celery

我在django 1.11.4应用程序中有一个这样的模型,该应用程序引用了django_celery_results中列出的不同已安装应用程序(settings.INSTALLED_APPS)中的外键:

class Worker(models.Model):
    tasks = models.ForeignKey('django_celery_results.TaskResult', null = True)

我可以毫无错误地运行makemigrations happy_farmmigrate,但是当我尝试访问worker.tasks时,它是NoneType而不是TaskResult管理器:

$ from happy_farm.models import Worker
$ type(Worker.objects.first().tasks)
NoneType

通常情况下,我希望看到类似django.db.models.fields.related_descriptors.ManyRelatedManager的内容。

我还尝试导入django_celery_results.models并直接引用它,例如:

import django_celery_results

class Worker(models.Model):
    tasks = models.ForeignKey(django_celery_results.models.TaskResult, null = True)

结果相同。

1 个答案:

答案 0 :(得分:0)

由于我的目标是让许多任务与一个工作者相关联,因此答案是需要在一对多关系的多方面设置ForeignKey关系(即在TaskResult模型而不是在Worker上)