有没有办法让Django管理人员自定义模型架构

时间:2019-05-17 08:51:48

标签: django django-models django-rest-framework

我想知道是否可以自定义django-admin面板,以便管理员可以向特定Model添加属性。更改属性名称。通过管理面板修改架构。

1 个答案:

答案 0 :(得分:2)

如果您想让用户自定义表单,以便他们可以保存您最初没有想到的属性,那么您应该创建一个通用的CustomField模型,看起来像这样:

class CustomField(models.Model):
    model_class = models.CharField(max_length=200)
    name = models.CharField(max_length=200)

然后,您将需要一种存储和检索值的方法,并且可以使用类似这样的其他模型来完成

class CustomFieldValue(models.Model):
    custom_field = models.ForeignKey(CustomField)
    object_id = models.IntegerField()
    field_value = models.CharField(max_length=200)

当然,检索额外的字段,以检索和保存数据的形式呈现它们完全是您的工作。但是,一旦您编程了必要的方法,就可以从django admin添加和配置新字段。

您可能会遇到性能问题和/或需要使用其他类型的字段(浮点数,日期等)。在这种情况下,您将需要更复杂的方法。