/ / Изграждане на персонализирани разширяващи се модели - django, django-модели

Изграждане на Custom Extendable Models - django, django-модели

Кажи, че имам модел, наречен клиент с основна информация като собствено име, фамилия, имейл и т.н. Ако искам потребителят да може да добави друго персонализирано поле (само за него) каже нетна стойност (текстово поле). Този потребител вече ще може да добавя информация за нетната стойност на всичките си клиенти. Може да искате да добавите друг потребител бележки за повиквания за всички свои клиенти.

Как да създам модел, който да може да обработва такива персонализирани допълнения от различни потребители? И също така, има ли конкретно име за това, което се опитвам да направя?

Update:

Има няколко профила и всеки от тях иманабор от клиенти. Мисля да използвам модела ClientCharIndex, за да следите всички разширени полета и модела ClientCharAttribues, за да запазите всички стойности.

class Client(Model):
account = models.ForeignKey(Account)
first_name = Model.CharField()
last_name = Model.CharField()
...

class ClientCharIndex(Model):
account = models.ForeignKey(Account)
name = Model.CharField()

class ClientCharAttribues(Model):
key = models.ForeignKey(ClientCharIndex)
client = models.ForeignKey(Client)
value = Model.CharField()

Отговори:

1 за отговор № 1

Това, което можете да направите, е да дефинирате модел само с полета с ключ-стойност (и може да бъде тип) и да имате отношения M2M или foreignkey с client модел.

Нещо като това:

class Client(Model):
...

class UserAttribues(Model):
key = Model.CharField()
value = Model.CharField()
client = Model.ManyToManyField(Client)

С това можете да добавите информация за ключ-стойност към клиентски обект и произволен брой от тях.