假设我有一个名为客户端的模型,其中包含名字,姓氏,电子邮件等基本信息。如果我希望用户能够添加另一个自定义字段(仅适合他),请说净值(文本字段)。此用户现在可以向其所有客户添加净值信息。另一位用户可能希望向所有客户添加通话记录。
如何设计可以处理来自不同用户的此类自定义添加的模型?而且,我正在尝试做什么的具体名称?
更新
有多个帐户,每个帐户都有一组客户端。我正在考虑使用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()
答案 0 :(得分:1)
您可以做的是定义一个只包含键值字段的模型(可能是类型),并且与client
模型具有M2M或外键关系。
这样的事情:
class Client(Model):
...
class UserAttribues(Model):
key = Model.CharField()
value = Model.CharField()
client = Model.ManyToManyField(Client)
使用此功能,您可以将任何键值信息添加到客户端对象及其中的任意数量。