Django: Problem mit db Model
Verfasst: Dienstag 22. März 2011, 16:55
Hallo,
ich bin aktuell am Testen von django und habe das Problem, dass ich im model.py nicht umsetzen kann
was ich gern moechte.
das hier moechte ich gern:
so versuche ich es hinzuschreiben:
und dann bekomme ich mit python manage.py sql polls folgenden Fehler:
Error: One or more models did not validate:
polls.url: Accessor for field 'selbst' clashes with related field 'objekt.url_set'. Add a related_name argument to the definition for 'selbst'.
polls.url: Accessor for field 'ziel' clashes with related field 'objekt.url_set'. Add a related_name argument to the definition for 'ziel'.
Leider finde ich nicht heraus wie ich das besser machen koennte?
Koennte mir da jemand helfen?
Danke und Gruss,
Sylvia
ich bin aktuell am Testen von django und habe das Problem, dass ich im model.py nicht umsetzen kann
was ich gern moechte.
das hier moechte ich gern:
Code: Alles auswählen
CREATE TABLE objekt (
objekt_id int(4) NOT NULL AUTO_INCREMENT,
name varchar(80) NOT NULL,
text varchar(150) DEFAULT NULL,
anderes varchar(4) DEFAULT NULL,
PRIMARY KEY (`objekt_id`),
UNIQUE KEY name (name)) ENGINE=INNODB;
mysql> select * from objekt;
+-----------+-------+------+------------+
| objekt_id | name | text | anderes |
+-----------+-------+------+------------+
| 1 | bla | txt | 1 |
| 2 | blubb | txt | 1 |
| 3 | foo | txt | 1 |
| 4 | bar | txt | 1 |
+-----------+-------+------+------------+
CREATE TABLE url (
url_id int(4) NOT NULL AUTO_INCREMENT,
selbst int ,
ziel int,
x int(4) NOT NULL,
y int(4) NOT NULL,
FOREIGN KEY (selbst) REFERENCES objekt(objekt_id),
FOREIGN KEY (ziel) REFERENCES objekt(objekt_id),
PRIMARY KEY (url_id)
) ENGINE=INNODB;
mysql> select * from url;
+--------+--------+------+----+----+
| url_id | selbst | ziel | x | y |
+--------+--------+------+----+----+
| 1 | 1 | 2 | 45 | 66 |
| 2 | 1 | 3 | 45 | 66 |
| 3 | 1 | 4 | 45 | 66 |
| 4 | 2 | 1 | 45 | 66 |
| 5 | 2 | 3 | 45 | 66 |
+--------+--------+------+----+----+
select distinct
obj2.objekt_id,
obj2.name
from url,
objekt as obj1,
objekt as obj2
where obj1.objekt_id = 1
and url.selbst = obj1.objekt_id
and url.ziel = obj2.objekt_id
+-----------+-------+
| objekt_id | name |
+-----------+-------+
| 2 | blubb |
| 3 | foo |
| 4 | bar |
+-----------+-------+
Code: Alles auswählen
class objekt(models.Model):
name = models.CharField(max_length=80, unique=True)
text = models.CharField(max_length=150, null=True)
teilgebiet = models.ForeignKey(teilgebiet)
def __unicode__(self):
return self.question
class url(models.Model):
selbst = models.ForeignKey(objekt)
ziel = models.ForeignKey(objekt)
x = models.IntegerField()
y = models.IntegerField()
def __unicode__(self):
return self.question
Error: One or more models did not validate:
polls.url: Accessor for field 'selbst' clashes with related field 'objekt.url_set'. Add a related_name argument to the definition for 'selbst'.
polls.url: Accessor for field 'ziel' clashes with related field 'objekt.url_set'. Add a related_name argument to the definition for 'ziel'.
Leider finde ich nicht heraus wie ich das besser machen koennte?
Koennte mir da jemand helfen?
Danke und Gruss,
Sylvia