django - 允许最终用户在 Django 中从模型中添加/删除字段
问题描述
请考虑这种情况:我的网站上有几个客户,每个客户都可以从他的仪表板创建员工。但是他们每个人都可能需要表单或用户模型中的不同字段。
示例:Client_1 想要姓名、电子邮件、电话形式 Client_2 想要姓名、电话、地址和出生日期
因此,从默认表单/模型客户端应该能够删除不需要的字段并创建他的必填字段。
我希望这可以使用 Django 或 ContentTypes 来完成
请知道的人提供详细的答案。这真的很有帮助。
解决方案
这真的取决于你的情况。最大的问题是输入类型。很难将 、 或 推广BooleanField
到CharField
某个IntegerField
模型TextField
的一个领域。但我会开始尝试将所有内容保存到 CharFields,然后将它们转换为表单中的正确输入。模型看起来像这样:
class CustomField(models.Model)
label = models.CharField('label', max_length=100)
input_type = models.ChoiceField('label', choices=(('text', 'text'), ('integer', 'integer')) max_length=100)
value = models.CharField('value', max_length=100)
class Contact(models.Model):
custom_fields = models.ManyToManyField(CustomField)
变体 2 从您的示例中,您也可以尝试覆盖所有字段,然后进行可见性设置。因此,用户可以看到他们可以选择的所有字段,并且可以根据需要进行更改。
像这样的东西:
class Contact(models.Model):
name = models.CharField('name', max_length=100)
email = models.CharField('email', max_length=100)
phone = models.CharField('phone', max_length=100)
address = models.CharField('address', max_length=100)
birth_date = models.DateField('birth_date', max_length=100)
class VisibilitySettings(models.Model):
name = models.BooleanField(default=True)
email = models.BooleanField(default=True)
phone = models.BooleanField(default=True)
address = models.BooleanField(default=True)
birth_date = models.BooleanField(default=True)
推荐阅读
- magento - Authorize.net 向卡收费但订单未在 Magento 中注册的间歇性问题
- angular - Angular 8不显示数组
- javascript - 我需要在异步函数中的每个语句之前放置等待吗?
- python - 用户从 RecycleView 中选择标签后如何更改 TextInput 字段中的文本
- view - SwiftUI:水平滚动视图我能够上下拉动图像
- node.js - 尝试在未找到与 gRPC 二进制模块相关的 Azure Functions 上运行 Node.js 时出错
- typescript - 将列表从 .ts 转移到 .tsx
- python - 使用索引数组从数组的张量数组中选择
- javascript - 正则表达式将长表达式字符串拆分为单个表达式的数组
- haskell - 如何使用 Aeson 的解析器从非常简单的对象中获取键值