簡體   English   中英

如何擁有一個帶有四個表的 Django 關系數據庫?

[英]How to have a Django relational database with four tables?

我正在使用 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()的代碼:

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) NameError: name 'questions' 未定義

在您嘗試使用question類名稱來指示相關模型時,未定義此類類,如錯誤所述。 當您引用稍后在代碼中定義的模型時,您必須將名稱括在""

topic_question = models.ForeignKey("questions", on_delete=CASCADE)

這是相關文檔: https : //docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.ForeignKey

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM