@G_r_i_n_v_i_c_h

Как создать модель, где полями будут другая модель и ее поле?

Друзья, задача следующая:
Мне надо текстовому полю сопоставить другую модель и поле.
class TextTemplateField(models.Model):
    text_template = models.CharField(max_length=64, unique=True)
    model_name = ???
    field_name = ???


Т.е. предположим есть модели:
class SupplierGroup(models.Model):
    name = models.CharField(max_length=32, unique=True)
class Supplier(models.Model):
    name = models.CharField(max_length=512)
    short_name = models.CharField(max_length=100, unique=True)
    official_short_name = models.CharField(max_length=100, blank=True)
    inn = models.CharField(max_length=12, blank=True)
    kpp = models.CharField(max_length=9, blank=True)
    ogrn = models.CharField(max_length=15, blank=True)

В объекте класса TextTemplateField должно содержаться, например:
obj.text_template = "SupplierGroup_name"
obj.model_name = SupplierGroup
obj.field_name = name

Чтобы в дальнейшем я мог сделать что-то типа
model_obj = obj.model_name.filter()
и потом
print(model_obj.obj.field_name)
  • Вопрос задан
  • 43 просмотра
Решения вопроса 1
@deliro
Агрессивное программирование
Смотри в сторону contenttype framework и generic relation
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Не сильно вчитывался в вопрос, но сразу интересует ответный:
работа с внешними ключами не подходит?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы