Django:model.ForeignKey 指的是字段类型

Django: model.ForeignKey referring to field type

我尝试建立一个模型,例如Userprofile,将在管理面板中选择其中的字段。

class UserProfile(models.Model):
    user = models.OneToOneField(User)
    regfield = models.ForeignKey(Regfields)

此模型引用了第二个模型Regfields:

class Regfields(models.Model):
    field_name = models.CharField(max_length = 256, unique=True, blank=False)
    field_type = models.ForeignKey(FOREIGNKEY_TO_DATATYPES)

我想选择 Fieldname 和 Fieldtype(例如 Char_field ...)以在第二个模型 Userprofile 中使用它,以引用 Regfields模特。实现这一点的最佳方法是什么?

编辑:

我不寻求一种用于用户配置文件的动态数据库。我想我可以通过使用 "static" 选择列表来达到这样的效果,例如:

FIELD_TYPE_CHOICES = (
    (BigIntegerField,'Long Int'),
    (BooleanField,'Boolean'),
    (CharField,'Char'),
    ...
    )
field_type = models.CharField(max_length=20, choices=FIELD_TYPE_CHOICES, default=CharField)

但是,通过这种方式,我可以从给定的集合中选择所需的注册字段,但我只能将字段类型作为字符串获取,这反过来可能会导致复杂的数据验证。

我尝试实现的示例: 在管理面板中,我希望管理员让他们在注册页面选择需要什么样的数据(除了用户名和密码)。管理员可能想询问(用户名、密码和电子邮件),但也可能询问(用户名、密码、电子邮件、first_name、last_name、公司、部门)

允许用户通过表单自定义表单并不是那么简单,并且可能会将您拖入更多非标准问题......尝试一个有助于构建表单的现成的 django 包怎么样?

https://www.djangopackages.com/grids/g/form-builder/