Django 构建自定义可扩展模型

Django 构建自定义可扩展模型,django,django-models,Django,Django Models,假设我有一个名为客户端的模型,其中包含基本信息,如姓名、姓氏、电子邮件等。如果我希望用户能够添加另一个自定义字段(仅针对他),请说净值(文本字段)。该用户现在可以向其所有客户添加净值信息。另一个用户可能希望向其所有客户端添加通话记录 如何设计一个能够处理来自不同用户的自定义添加的模型?还有,我想做的事有没有一个明确的名字 更新: 有多个帐户,每个帐户都有一组客户端。我正在考虑使用ClientCharIndex模型来跟踪所有扩展字段,并使用ClientCharAttributes模型来存储所有值

假设我有一个名为客户端的模型,其中包含基本信息,如姓名、姓氏、电子邮件等。如果我希望用户能够添加另一个自定义字段(仅针对他),请说净值(文本字段)。该用户现在可以向其所有客户添加净值信息。另一个用户可能希望向其所有客户端添加通话记录

如何设计一个能够处理来自不同用户的自定义添加的模型?还有,我想做的事有没有一个明确的名字

更新:

有多个帐户,每个帐户都有一组客户端。我正在考虑使用ClientCharIndex模型来跟踪所有扩展字段,并使用ClientCharAttributes模型来存储所有值

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

您可以做的是定义一个只包含键值字段(可能是类型)的模型,并与
客户机
模型建立M2M或foreignkey关系

大概是这样的:

class Client(Model):
  ...

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

使用此功能,您可以向客户端对象和任意数量的客户端对象添加任何键值信息。

感谢您的评论,很抱歉回复太晚!上面更新的模型有意义吗?@drakej44,我不知道你为什么想要中间
ClientCharIndex
model。但这似乎没什么问题。这是为了跟踪添加到每个帐户的字段,以便在客户端上没有该字段的数据时显示为空。这有意义吗?