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 包怎么样?
我尝试建立一个模型,例如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 包怎么样?