首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Django,让用户构建自己的表和数据结构

Django,让用户构建自己的表和数据结构
EN

Stack Overflow用户
提问于 2020-05-28 00:42:15
回答 1查看 25关注 0票数 0

可能有一个很难的问题,在谷歌上找不到任何明显的东西,还在搜索。在任何情况下,我都会尝试构建一个包含大约40个字段的表单。- 20个字段是简单CharText字段- 10个字段是简单DateTime字段- 10个剩余字段是我的两难境地。对于这最后10个字段,我想让正在编译表单的用户,有可能:-决定表的结构(如:3列。'col1‘'col2’'col3‘或5个列,如果他需要的话);-在添加了他需要的列之后,他还可以向先前的表添加新的条目。

我将发布模型基础结构。( '=‘后面的空行表示我不知道如何填充)我需要让用户构建自己的结构。我可以自己构建这些列,但最好让他通过选择自己的结构来创建它们。

代码语言:javascript
运行
复制
class Incarico(models.Model):
    #id = models.AutoField(primary_key=True)
    nr_sinistro = models.CharField(max_length=50, default=None)
    nr_polizza = models.CharField(max_length=50, default=None)
    appuntamento_danno = models.CharField(max_length=50, default=None)
    note_pubbliche = models.CharField(max_length=50, default=None)
    note_private = models.CharField(max_length=50, default=None)
    sinistro = models.DateField(default=None)
    incarico = models.DateField(default=None)
    perizia = models.CharField(max_length=50, default=None)
    pl = models.CharField(max_length=50, default=None)
    codifiche = models.CharField(max_length=50, default=None)
    studio = models.CharField(max_length=50, default=None)
    impiegata = 
    perito = models.CharField(max_length=50, default=None)
    perito_date = models.DateField(default=None)
    accertatore = 
    revisore = 
    contatto = models.CharField(max_length=50, default=None)
    contatto_date = models.DateField(default=None)
    sopralluogo = models.CharField(max_length=50, default=None)
    sopralluogo_date = models.DateField(default=None)
    interloc = models.CharField(max_length=50, default=None)
    interloc_date = models.DateField(default=None)
    evasione = models.CharField(max_length=50, default=None)
    evasione_date = models.DateField(default=None)
    mandante = 
    agenzia = 
    ispettorato = 
    ramo = 
    liquidatore = 
    assicurato = 
    amministratore = 
    broker = 
    danneggiati = 
    tipologia_sinistro =
    data_incarico = models.DateField(default=None)
    note = models.CharField(max_length=500, default=None)

提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2020-05-28 00:53:27

如果你使用的是Postgresql,你可以创建像Charfield或者JSONField这样的通用字段。然后在构建模型之前和之后,使用这个通用字段创建一个验证器。

例如,您可以创建一个JSONField并保存如下内容:

代码语言:javascript
运行
复制
{
   "field": "CharField",
   "value": "This is a example text",
}

代码语言:javascript
运行
复制
{
    "field" "DateField",
    "value": "MM/DD/YYYY"
}

这样,您就可以在运行时使用field的名称创建该字段的实例。

如果您允许用户创建他们自己的定制表,那么您最终将得到许多具有不同模式的表。也许不是个好主意。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62048316

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档