我有一个指向外键的变量 Topic,它会产生以下错误:NameError:名称“Topic”未定义

问题描述 投票:0回答:1

我正在开发一个 django 项目,我在其中创建了一个项目和一个应用程序。在 models.py 中,我有两个类:Topic 和 Entry。当我尝试运行服务器时,出现错误 NameError Topic is not Defined。

from django.db import models

# Create your models here.
class Lesson(models.Model):
    """A topic the user is learning about"""
    text = models.CharField(max_length=200)
    date_added = models.DateTimeField(auto_now_add=True)
    def __str__(self):
        """Return a string representation of the mocel"""
        return self.text
    
class Entry(models.Model):
    """Something specific learned about a topic."""
    topic = models.ForeignKey(Topic, on_delete=models.CASCADE)
    text = models.TextField()
    date_added = models.DateTimeField(auto_now_add=True)

我尝试过迁移并将迁移课程作为应用程序的名称。我重写了代码并检查了缩进。我正在严格遵循《Python 速成课程》一书中的代码。在某一时刻,我的代码可以工作,但现在我收到 NameError: name 'Topic' is not Defined。但是当我执行 python manage.py runserver 8000 时,我不断收到错误。

django django-models django-admin
1个回答
0
投票

你把

Topic
模型的定义放在哪里了?

如果它在同一个文件中,但稍后,您可以将其放在

Entry
的定义之前,或者像这样定义字段
topic
topic = models.ForeignKey('Topic', on_delete=models.CASCADE)
其中您只使用名称,而不是引用模型直接。

如果它在另一个文件中,则说明您忘记导入它。

© www.soinside.com 2019 - 2024. All rights reserved.