Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何拥有具有四个表的Django关系数据库?_Python_Django_Django Models_Frameworks - Fatal编程技术网

Python 如何拥有具有四个表的Django关系数据库?

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):

我正在使用Django创建一个网站,但数据库有问题! 我有四个表格(主题、问题、答案和图片)。这些表中的每一个都有一个id列,我想将这四个表连接在一起

我曾尝试使用
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)