django - 有没有办法让 django 管理自定义模型模式
问题描述
我想知道是否可以自定义 django-admin 面板,以便管理员可以将属性添加到特定模型。更改属性的名称。通过管理面板修改架构。
解决方案
如果您想让用户自定义表单以便他们可以保存您最初没有想到的属性,那么您应该创建一个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 中添加和配置新字段。
您可能会遇到性能问题和/或需要不同类型的字段(浮点数、日期等...)。在这种情况下,您将需要更复杂的方法。
推荐阅读
- javascript - 返回函数时的Javascript内存使用情况
- c# - 当我从 C# App 向 Laravel 发送 post 请求时,为什么 $request 为空?
- php - 如何通过表单通过 POST 传递 TD id
- delphi - 帕斯卡中的素数计算
- contains - 包含无法找到 VbTab 和 Chr
- python - 如何将 Python 字节对象直接存储到 MySql 数据库中而无需使用额外的字节?
- sql - SQL Pivot - 垂直到水平的查询结果
- sql - concat_ws 基于 SQL 查询中列的值的字符串
- javascript - 在单击摩纳哥编辑器时显示替换面板
- python - 使用 Panda Data Reader 更改数据框中的标签标题