Wenn Sie eine Beziehung mit einer Django-Abstraktklasse erstellen und diese Klasse erben, werden aus irgendeinem Grund zwei umgekehrte Beziehungen erstellt

8

Dies ist mein Modell:

%Vor%

Wenn ich nun die Python-Shell öffne und folgendes mache:

%Vor%

Dann erscheinen diese zwei:

%Vor%

und wenn ich das tue:

%Vor%

es gibt ein S -Objekt zurück, aber wenn ich das tue:

%Vor%

es gibt drei S -Objekte zurück (das erste S -Objekt, das zurückgegeben wird, ist dasselbe, das zurückgegeben wurde, wenn ich a.s_set.all() mache. Meine zwei Fragen sind,

1) Wie kommt es, wenn ich speziell owner = models.ForeignKey(User, related_name="%(app_label)s%(class)s_set") gemacht habe, kann ein s_set mit einem Benutzerobjekt aufgerufen werden?

2) Wie kommt es, dass sie zwei verschiedene Objektmengen zurückgeben (also wie kommt myapps_set.all() zu 3 (die richtige Antwort), während s_set.all() nur eins zurückgibt?

    
user2719875 22.12.2015, 00:49
quelle

1 Antwort

4

Ich habe gerade den Code mit django == 1.8 in einer sauberen virtuellen Umgebung getestet und habe nur eine umgekehrte Beziehung.

%Vor%

Hier ist der Code: Ссылка

Es sieht so aus, als ob Sie etwas mit Ihrer lokalen Version von django gemacht haben oder Sie haben hier nicht den ganzen Code gezeigt.

    
Yevgeniy Shchemelev 24.12.2015, 18:22
quelle