2017-08-26 63 views
0

我有这样的一个Django 1.11.4应用程序,它引用在不同安装的应用程序外键的模型(django_celery_results,在settings.INSTALLED_APPS列出)​​:Django的从不同的应用程序外键是NoneType

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) 

有了相同的结果。

+2

该实例是否具有该字段集?这可能是该领域正在工作,但您正在查找的实例将其视为null。 – chicocvenancio

+0

经理是否存在任何记录,所以如果它正在工作,它永远不会是无。 – bribroder

+0

返回的相关字段是实例,而不是QuerySet。经理不是那里的退货对象。尝试在工作人员上设置任务并查询该工作人员的任务。 – chicocvenancio

回答

0

因为我的目标是有许多任务与一个工作人员相关联,所以答案是ForeignKey关系需要在一对多关系的许多方面进行设置(即在TaskResult模型上而不是在工作人员上)。

+0

这不是对发布的问题的回答。 – chicocvenancio