Я давно искал ответа на этот вопрос и еще не нашел его. Надеюсь, вы можете мне помочь.обратный внешний ключ - выберите из двух таблиц
У меня есть две модели:
class UsedEverywhere(models.Model):
fk_OtherThing = models.ForeignKey(OtherThing)
...(many more fks)
class NewThing(models.Model):
fk_UsedEverywhere(UsedEverywhere)
newThingMember = models.IntegerField()
Я просто хочу, чтобы присоединиться к этим двум таблицам. Было бы довольно легко, если я мог бы просто сделать что-то вроде
x = NewThing.objects.get()
x.fk_UsedEverwhere.fk_OtherThing ...
проблема, модель UsedEverywhere уже используется во многих многих местах на протяжении всей моей базы коды, и если я хочу, чтобы положить «NewThing» как ' родитель из UsedEverywhere, мне придется обновлять много и много кода, так существующий код, который имеет что-то вроде:
x = x.filter(fk_OtherThing=val)
бы, чтобы изменить
x = x.filter(fk_UsedEverywhere.fk_OtherThing=val)
и я tryi чтобы избежать этого. Мои отношения SQL настроены именно так, как я их хочу, я не хочу давать UseEverywhere столбец для NewThing.
Я хочу сделать что-то вроде:
x = UsedEverywhere.objects.join(NewThing.fk_UsedEverywhere)
member = x.newThingMember