【发布时间】:2018-02-04 15:12:32
【问题描述】:
我在 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_farm 和migrate 而不会出错,但是当我尝试访问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)
同样的结果。
【问题讨论】:
-
该实例是否设置了该字段?可能该字段正在工作,但您正在查找的实例将其设置为 null。
-
无论有没有记录,经理都存在,所以如果它在工作,它永远不会是None。
-
返回的相关字段是一个实例,而不是QuerySet。经理不是那里的返回对象。尝试在工作人员上设置任务并查询该工作人员的任务。
标签: python django django-models celery