2015-04-24 3 views
0

Используя django, я хочу определить несколько столбцов в моей модели Xon на основе уникальных значений, хранящихся в MyTypes. Таким образом, мне не нужно вручную определять type1, type2, type3, ... , и я могу использовать страницу администратора для динамического добавления столбца нового типа. Может кто-нибудь объяснить, как я могу это сделать?динамическая загрузка столбцов django из другой таблицы

class Xon(models.Model): 
    ge = models.CharField(max_length=200) 
    mu = models.CharField(max_length=200) 
    des = models.TextField() 
    type1 = models.CharField(max_length=200) 
    type2 = models.CharField(max_length=200) 
    type3 = models.CharField(max_length=200) 

class MyTypes(models.Model): 
    name = models.CharField(max_length=20, primary_key=True) 

ответ

1

ЗАКАНЧИВАТЬ абстрактные базовые классы https://docs.djangoproject.com/en/1.8/topics/db/models/#abstract-base-classes

Из документов:

абстрактные базовые классы

абстрактные базовые классы полезны, когда вы хотите поставить некоторые общие информацию в количество других моделей. Вы пишете свой базовый класс и поместите abstract = True в класс Meta. Эта модель тогда не будет , используемой для создания любой таблицы базы данных. Вместо этого, когда он используется в качестве базового класса для других моделей, его поля будут добавлены к полям дочернего класса . Ошибочно иметь поля в абстрактном базовом классе с с тем же именем, что и у дочернего элемента (и Django будет создавать исключение ).

И пример, также из документации:

from django.db import models 

class CommonInfo(models.Model): 
    name = models.CharField(max_length=100) 
    age = models.PositiveIntegerField() 

    class Meta: 
     abstract = True 

class Student(CommonInfo): 
    home_group = models.CharField(max_length=5) 
+0

Спасибо. Это оно! – max

Смежные вопросы