/ / Budovanie vlastných rozšíriteľných modelov - django, django modely

Budovanie vlastných rozšíriteľných modelov - django, django modely

Povedz, že som zavolal model zákazník so základnými informáciami, ako sú meno, priezvisko, e-mail atď. Ak chcem, aby používateľ mohol pridať ďalšie vlastné pole (len pre neho) povedať čistá hodnota (textové pole). Tento používateľ bude teraz môcť pridať informácie o čistej hodnote všetkým svojim klientom. Iný používateľ môže chcieť pridať poznámky k volaniu všetkým svojim klientom.

Ako môžem navrhnúť model, ktorý dokáže spracovať takéto vlastné doplnky od rôznych používateľov? A tiež existuje konkrétny názov toho, čo sa snažím robiť?

aktualizácia:

Existuje viacero účtov a každý účet másúbor klientov. Uvažujem o použití modelu ClientCharIndex na sledovanie všetkých rozšírených polí a modelu ClientCharAttribues na ukladanie všetkých hodnôt.

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()

odpovede:

1 pre odpoveď č. 1

Čo môžete urobiť, je definovať model s len polia kľúč-hodnota (a môže byť typu) a M2M alebo foreignkey vzťah s client Model.

Niečo také:

class Client(Model):
...

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

Týmto môžete pridať ľubovoľnú informáciu o kľúči a hodnote do objektu klienta a ľubovoľného počtu.