Django ManyToMany关系错误 [英] Django ManyToMany Relationship Error
本文介绍了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屋!
查看全文