Djangoのモデルを以下のように設定しています。
class Pupil(models.Model):
forename = models.CharField(max_length=30)
surname = models.CharField(max_length=30)
dateofbirth = models.DateField()
year = models.IntegerField()
class_group = models.CharField(max_length=30)
email = models.EmailField(blank=True)
assignments = models.ManyToManyField('Assignment', verbose_name='related assignments')
def __unicode__(self):
return u'%s %s' % (self.forename, self.surname)
class Subject(models.Model):
name = models.CharField(max_length=30)
level = models.CharField(max_length=30)
teachers = models.ManyToManyField('Teacher', verbose_name='related teachers')
def __unicode__(self):
return self.name
class Teacher(models.Model):
forename = models.CharField(max_length=30)
surname = models.CharField(max_length=30)
email = models.EmailField(blank=True)
def __unicode__(self):
return u'%s %s' % (self.forename, self.surname)
class Assignment(models.Model):
assignment_name = models.CharField(max_length=30)
date_assigned = models.DateField()
date_submitted = models.DateField()
def __unicode__(self):
return self.assignment_name
管理者で生徒を追加して生徒に割り当てを添付しようとすると、データベースエラーが発生します-
no such table: homework_pupil_assignments
これを読んだ後、これはdjangoがモデルの変更を更新していないことが原因である可能性があることに気付きましたmanage.py sqlall homework
私は次のように見えます:
BEGIN;
CREATE TABLE "homework_pupil_assignments" (
"id" integer NOT NULL PRIMARY KEY,
"pupil_id" integer NOT NULL,
"assignment_id" integer NOT NULL,
UNIQUE ("pupil_id", "assignment_id")
)
;
CREATE TABLE "homework_pupil" (
"id" integer NOT NULL PRIMARY KEY,
"forename" varchar(30) NOT NULL,
"surname" varchar(30) NOT NULL,
"dateofbirth" date NOT NULL,
"year" integer NOT NULL,
"class_group" varchar(30) NOT NULL,
"email" varchar(75) NOT NULL
)
;
CREATE TABLE "homework_subject_teachers" (
"id" integer NOT NULL PRIMARY KEY,
"subject_id" integer NOT NULL,
"teacher_id" integer NOT NULL,
UNIQUE ("subject_id", "teacher_id")
)
;
CREATE TABLE "homework_subject" (
"id" integer NOT NULL PRIMARY KEY,
"name" varchar(30) NOT NULL,
"level" varchar(30) NOT NULL
)
;
CREATE TABLE "homework_teacher" (
"id" integer NOT NULL PRIMARY KEY,
"forename" varchar(30) NOT NULL,
"surname" varchar(30) NOT NULL,
"email" varchar(75) NOT NULL
)
;
CREATE TABLE "homework_assignment" (
"id" integer NOT NULL PRIMARY KEY,
"assignment_name" varchar(30) NOT NULL,
"date_assigned" date NOT NULL,
"date_submitted" date NOT NULL
)
;
COMMIT;
次に、これらのテーブルを正常に同期することを期待して、既存のアプリを起動して実行するための指示に従って、Southをインストールしました。喜びはありません。
誰かがデータベース(sqlite3)にモデルを反映させる方法や、私が間違っていることを指摘する方法を提案できますか?