django.db.utils.OperationalError: my_table hat keine Spalten-id-Fehler?
Teste ich meine models.py Datei von meinem Django-app: "myapp" in meinem Python interepreter, aber immer wieder mit dieser Fehlermeldung:
django.db.utils.OperationalError: table myapp_table1 has no column named attribute1_id
Ich habe 2 Tabellen in meiner models.py, Tabelle1 und Tabelle 2.
class table1 (models.Model):
name = models.CharField(max_length=25)
def __str__(self):
return self.name
class table2 (models.Model):
name = models.CharField(max_length =25)
attribute1= models.ForeignKey(Type, related_name = "att1_set+", default=None)
attribute2= models.ManyToManyField(Type, related_name = "att2_set+", default=None)
def __str__(self):
return self.metric_name
In mein python-interpreter:
>>> from my_app.models import table1, table2
>>> t1 = table1 (name = "ty1", id = 0)
>>> t1.save()
>>> t2 = table1 (name = "ty2", id = 1)
>>> e1 = table2 (name = "as", attribute1 = t1)
>>> e1.save()
>>> error aforementioned after .save
Jedoch wenn ich die exe-Datei: "manage.py sql myapp", sehe ich für meine Tabelle2:
CREATE TABLE "my_app_table2" (
"id" integer NOT NULL PRIMARY KEY AUTOINCREMENT,
"name" varchar(25) NOT NULL,
"attribute1_id" integer NOT NULL REFERENCES "myapp_table1" ("id")
)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie zu laufen
python manage.py syncdb
(oderpython manage.py migrate
wenn Siesouth
- und das sollten Sie), um die änderungen auf die Datenbank angewendet werden.syncdb
+migrate
.