Python 如何拥有具有四个表的Django关系数据库?
我正在使用Django创建一个网站,但数据库有问题! 我有四个表格(主题、问题、答案和图片)。这些表中的每一个都有一个id列,我想将这四个表连接在一起 我曾尝试使用Python 如何拥有具有四个表的Django关系数据库?,python,django,django-models,frameworks,Python,Django,Django Models,Frameworks,我正在使用Django创建一个网站,但数据库有问题! 我有四个表格(主题、问题、答案和图片)。这些表中的每一个都有一个id列,我想将这四个表连接在一起 我曾尝试使用ForeignKey(),但没有成功。我收到一条错误消息。我不知道在这种情况下是否可以使用ManyToManyField(),因为我只想连接一列 代码如下: from django.db import models # Create your models here. class topics(models.Model):
ForeignKey()
,但没有成功。我收到一条错误消息。我不知道在这种情况下是否可以使用ManyToManyField()
,因为我只想连接一列
代码如下:
from django.db import models
# Create your models here.
class topics(models.Model):
topic_id = models.AutoField(primary_key=True)
topic_level = models.BooleanField()
topic_name = models.TextField()
class questions(models.Model):
question_id = models.AutoField(primary_key=True)
description = models.TextField()
questions_type = models.BooleanField()
class answers(models.Model):
answer_id = models.AutoField(primary_key=True)
description = models.TextField()
class images (models.Model):
image_id = models.AutoField(primary_key=True)
image_blob = models.BinaryField()
这是带有ForeignKey()
的代码:
这是我收到的错误消息:
topic\u question=models.ForeignKey(问题,在\u delete=CASCADE上)
NameError:未定义名称“问题”
当您试图使用
问题
类名指示相关模型时,如错误所述,此类未定义。当引用稍后在代码中定义的模型时,必须将名称括在“
”中:
以下是相关文档:这是如何回答创建外键的OP问题的?@devdob是的,我的错我在用编辑器为另一个问题编写aswer,并复制了错误的aswer,我updated@RaydelMiranda我已经按照你的建议做了,对此我有一个问题。我还没有看到任何使用括号的教程,我想知道为什么?当我执行您建议的操作时,我收到了一个新的错误,这是我之前在没有ForeignKey()的情况下运行代码时没有收到的错误。新错误为:缩进错误:应为缩进错误block@MajedSaaeddin,在教程中,您已经看到模型总是按使用顺序定义的。阅读我在答案中发布的链接。@关于你的新错误是Python错误,与Django无关,你有一些不好的缩进块,或者你错过了一些
)
。有时,复制/粘贴Python代码会通过制表符更改空格,反之亦然。检查您的所有空间是否都是空格或所有选项卡是否都是选项卡。请按照提示进行操作
from django.db import models
# Create your models here.
class topics(models.Model):
topic_id = models.AutoField(primary_key=True)
topic_level = models.BooleanField()
topic_name = models.TextField()
topic_question = models.ForeignKey(questions, on_delete=CASCADE)
topic_answer = models.ForeignKey(answers, on_delete=CASCADE)
topic_image = models.ForeignKey(images, on_delete=CASCADE)
class questions(models.Model):
question_id = models.AutoField(primary_key=True)
description = models.TextField()
questions_type = models.BooleanField()
question_topic = models.ForeignKey(topics, on_delete=CASCADE)
question_answer = models.ForeignKey(answers, on_delete=CASCADE)
question_image = models.ForeignKey(images, on_delete=CASCADE)
class answers(models.Model):
answer_id = models.AutoField(primary_key=True)
description = models.TextField()
answer_topic = models.ForeignKey(topics, on_delete=CASCADE)
answer_question = models.ForeignKey(questions, on_delete=CASCADE)
answer_image = models.ForeignKey(images, on_delete=CASCADE)
class images (models.Model):
image_id = models.AutoField(primary_key=True)
image_blob = models.BinaryField()
image_topic = models.ForeignKey(topics, on_delete=CASCADE)
image_question = models.ForeignKey(questions, on_delete=CASCADE)
image_answer= models.ForeignKey(answers, on_delete=CASCADE)
topic_question = models.ForeignKey("questions", on_delete=CASCADE)