Django:model.ForeignKey引用字段类型

时间:2015-04-25 18:20:13

标签: django django-models foreign-keys

我尝试建立一个模型,例如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,公司,部门)

1 个答案:

答案 0 :(得分:1)

允许用户通过表单自定义表单并不是那么简单,并且可能会让您陷入更多非标准问题......如何尝试使用现成的django包来帮助构建表单?

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