Django ManyToMany关系错误 [英] Django ManyToMany Relationship Error

查看:126
本文介绍了Django ManyToMany关系错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在django中设置manytomany关系

i want to set a manytomany relationship in django

models.py:

class student(models.Model):
    id = models.AutoField(primary_key=True)
    First_Name = models.CharField(max_length=100,null=True)
    Last_Name = models.CharField(max_length=100,null=True)
    Birthday = models.CharField(max_length=10,null=True)
    Phone = models.CharField(max_length=20,null=True)
    Mobile = models.CharField(max_length=20,null=True)
    STNO = models.CharField(max_length=10,null=True)
    Father_Name = models.CharField(max_length=100,null=True)
    Father_Job = models.CharField(max_length=100,null=True)
    Father_Phone = models.CharField(max_length=20,null=True)
    ID_Code = models.CharField(max_length=10,null=True)
    National_ID = models.CharField(max_length=10,null=True)
    Address = models.CharField(max_length=200,null=True)
    Study_Field = models.CharField(max_length=100,null=True)
    Probation = models.BooleanField(default=False)
    def __STR__ (self):
        return self.STNO
    class Meta:
        ordering = ('id','First_Name','Last_Name','STNO','ID_Code','National_ID',
    'Phone','Mobile','Father_Name','Father_Phone','Father_Job',
    'Birthday','Address','Study_Field','Probation')

class lesson(models.Model):
    id = models.AutoField(primary_key=True)
    Name = models.CharField(max_length=100,null=True)
    Code = models.CharField(max_length=100,null=True)
    Capacity = models.IntegerField(null=True)
    UNO = models.IntegerField(null=True)
    CNO = models.IntegerField(null=True)
    Hour = models.IntegerField(null=True)
    Student = models.ManyToManyField(student)
    def __STR__ (self):
        return self.Code
    class Meta:
        ordering = ('id','Name','Code','Capacity','UNO',
    'CNO','Hour')

admin.py:

class lesson_admin(admin.ModelAdmin):
    fieldsets = [
        ('Lesson Info : ',{'fields':['Name','Code','Capacity']}),
        ('ManyToMany : ',{'fields':['Student']})
    ]

sqlmigrate

BEGIN;
CREATE TABLE "school_manager_lesson_Student" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "lesson_id" integer NOT NULL REFERENCES "school_manager_lesson" ("id"), "student_id" integer NOT NULL REFERENCES "school_manager_student" ("id"),UNIQUE ("lesson_id", "student_id"));
INSERT INTO "school_manager_lesson_Student" (id, lesson_id, student_id) SELECT id, lesson_id, student_id FROM "school_manager_lesson_student";
DROP TABLE "school_manager_lesson_student";
CREATE INDEX "school_manager_lesson_Student_55174b7b" ON "school_manager_lesson_Student" ("lesson_id");
CREATE INDEX "school_manager_lesson_Student_30a811f6" ON "school_manager_lesson_Student" ("student_id");
COMMIT;

在迁移,表创建,但是当我想使用软件我有这个错误:
没有这样的表:school_manager_lesson_Student

in migration , table created but when i want to use software i have this error : "no such table: school_manager_lesson_Student"

在Django文档中说的要定义一个多对多关系,使用ManyToManyField

in the Django Document Just said To define a many-to-many relationship, use ManyToManyField

推荐答案

检查您的应用程序是否包含在设置文件中已安装应用程序的列表中。然后检查是否应用了迁移。可以帮助您的命令:

Check that your app is included in a list of installed apps in settings file. Then check that your migrations applied. Commands that can help you:


  • ./ manage.py检查

  • ./ manage.py makemigrations

  • ./ manage.py migrate

这篇关于Django ManyToMany关系错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆