0

请考虑这种情况:我的网站上有几个客户,每个客户都可以从他的仪表板创建员工。但是他们每个人都可能需要表单或用户模型中的不同字段。

示例:Client_1 想要姓名、电子邮件、电话形式 Client_2 想要姓名、电话、地址和出生日期

因此,从默认表单/模型客户端应该能够删除不需要的字段并创建他的必填字段。

我希望这可以使用 Django 或 ContentTypes 来完成

请知道的人提供详细的答案。这真的很有帮助。

4

1 回答 1

1

这真的取决于你的情况。最大的问题是输入类型。很难将 、 或 推广BooleanFieldCharField某个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)
于 2021-05-14T13:56:45.740 回答