【发布时间】:2016-08-23 17:56:27
【问题描述】:
我目前正在一个 Docker 实例中处理一个 Django 1.5.2 项目,该项目与一个单独的 Docker 实例中的 mysql 数据库通信。我试图通过创建一个中间表来创建两个表之间的多对多关系,该表包含两个指向需要连接的两个表的外键。当我运行python manage.py syncdb 时出现问题,它向终端吐出以下错误:NameError: name 'QueryString' is not defined。 QueryString 在我的模型中明确定义。
这是我的模型...
class Tag(models.Model):
name = models.CharField(max_length=100)
class QueryStringTab(models.Model):
tag = models.ForeignKey(Tag, related_name='querystringtab')
querystring = models.ForeignKey(QueryString, related_name='querystringtab')
class QueryString(BaseObject):
"""
Query string holds an SQL statement and query properties for execution
"""
server_id = models.IntegerField()
schema = models.CharField(max_length=255, blank=True)
query = models.CharField(max_length=60000)
variables = models.TextField(blank=True)
created_by = models.ForeignKey(User, related_name='queries_created')
updated_by = models.ForeignKey(User, related_name='queries_last_edited')
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField()
touched_by = models.CharField(max_length=1000)
config = models.TextField(blank=True)
runs_started = models.IntegerField(default=0)
runs_completed = models.IntegerField(default=0)
runs_completed_duration = models.IntegerField(default=0) # total number of seconds spent running this query to completion
formats = "pretty_html html json prettyjson csv excel tableau".split()
值得注意的点...
1) 它可以很好地识别Tag 模型。
2) 这是否与 QueryString 是 BaseObject 的事实有关
3) 在mysql数据库中创建Tag表成功
谁能发现我做错了什么明显的事情?
【问题讨论】:
-
据我所知,如果你想使用 Django 自动生成的数据库访问 API,你需要使用 models.Model 类。所以我想你对#2) 的直觉是对的。
-
BaseObject类是什么?
标签: python mysql django orm docker