【发布时间】:2011-10-06 01:39:16
【问题描述】:
我正在设置一个简单的 Django 应用程序——一个测验。问题和答案来自经过扫描、OCR 和解析的打印样本测试。我已经将它们解析为 Python 对象,如下所示:
class Quiz(object):
def __init__(self, name):
self.name = name
self.questions = {}
class Question(object):
def __init__(self, text):
self.text = text
self.answers = {}
class Answer(object):
def __init__(self, text, value= -1.0, explanation=""):
self.text = text
self.value = value
self.explanation = explanation
但是我的 Django 模型,由于模型字段无法拥有“列表”,因此使用外键来保持测验之间的关系-
class Quiz(models.Model):
name = models.CharField(max_length=256)
class Question(models.Model):
quiz = models.ForeignKey(quiz)
order = models.IntegerField()
text = models.TextField()
class Answer(models.Model):
question = models.ForeignKey(question)
order = models.IntegerField()
text = models.TextField()
explanation = models.TextField()
value = models.FloatField()
有人可以建议一种从前者到后者的直接方法吗?谢谢。
【问题讨论】:
-
谢谢。我试图在解析源文本时直接创建一个 Question 模型实例。问题是当我尝试导入我的模型时,
from models import Choice, Question我收到以下错误:File "...quiz/printparser.py", line 22, in <module> from models import Choice, Question File "...quiz/models.py", line 6, in <module> class Question(models.Model): File "...django/db/models/base.py", line 52, in __new__ kwargs = {"app_label": model_module.__name__.split('.')[-2]} IndexError: list index out of rangeDjango 是否有超出正常 Python 导入的限制?