У меня есть два классаДжанго ForeignKey вопрос
class A(models.Model):
id=models.IntegerField(primary_key=True)
name=models.CharField(max_length=200)
store_id=models.IntegerField()
type=models.ForeignKey(B)
class B(models.Model):
id=models.IntegerField(primary_key=True)
type=models.CharField(max_length=10)
class C(models.Model):
id=models.IntegerField(primary_key=True)
store=models.CharField(max_length=200)
class D(models.Model):
id=models.IntegerField(primary_key=True)
type=models.CharField(max_length=10)
В моем классе A
type
является ForeignKey на B и store_id является логическим внешним ключом на C или D, в зависимости от величины type
.
В полевых условиях я хочу показать значение store
в зависимости от тип после некоторых расчетов. type
расскажет мне о таблице i.e C
Или D
и в магазине магазина скажите мне строку в этой таблице c
или d
. Теперь я хочу показать значение в браузере, не перезаписывая значения. Возможно ли это?
Это полезно, если вы хотите относиться к различным моделям. В случае с ОП он всегда относится к «С», я думаю. –
@Felix: Я все еще думаю, что @zalew прав, указывая, что OP (по-видимому) пытается решить уже решенную проблему. DRY не является нерушимой заповедью, но это хорошая цель, к которой нужно стремиться. Жизнь слишком коротка, и у нас уже достаточно колес. :-) –
@Peter: Я не хотел ничего говорить против СУХОЙ. СУХОЙ для победы !! ;) Но я думаю, что в этом случае общая вещь отношений слишком велика, поскольку 'A' всегда указывает на' C'. По моему мнению, общие отношения имеют смысл, если модель может относиться к различным типам ** моделей **, например. модель тега, которая может относиться к модели страницы или модели публикации. –