我尝试建立一个模型,例如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
模型中的字段名称和字段类型。实现这一目标的最佳方法是什么?
编辑:
我没有为用户个人资料寻找一种动态数据库。我想通过使用"静态"我可以实现这样的事情。选择列表,例如:
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,公司,部门)
答案 0 :(得分:1)
允许用户通过表单自定义表单并不是那么简单,并且可能会让您陷入更多非标准问题......如何尝试使用现成的django包来帮助构建表单?