Есть много похожих моделей, в которых меняется ForeignKey, можно ли сделать так, чтобы не переопределять его в детях?
К примеру:
class AbstractTest(models.Model):
@staticmethod
def get_test_id():
return 1
test = models.ForeignKey(
get_some_model(get_test_id()), # здесь передать статический метод или что-то другое, что будет меняться в детях
null=True,
verbose_name='test',
on_delete=models.CASCADE
)
class Meta:
abstract = True
class Test1Model(AbstractTest):
@staticmethod
def get_test_id():
return 5
class Meta:
verbose_name = 'Test1Model'
verbose_name_plural = 'Test1Models'
Таким способом к сожалению не работает, что нужно сделать чтобы работало? Нигде не нашел ответа, так как не знаю как правильно сформулировать вопрос, а переопределять в детях не хочу, потому что их может быть много и некоторые расширяются другими классами.
Так тоже не работает:
class AbstractTest(models.Model):
F_MODEL = 'app.Default'
test = models.ForeignKey(
F_MODEL,
null=True,
verbose_name='test',
on_delete=models.CASCADE
)
class Meta:
abstract = True
class Test1Model(AbstractTest):
F_MODEL = 'app.Model'