Django 数据库可变字段

Django 数据库可变字段,django,database,model,Django,Database,Model,我必须存储数据,其中一部分是预定义的,但用户可以选择自定义它。 在数据库中存储这些数据的最佳方式是什么 2个字段,1是预定义选项的整数字段,第二个是自定义用户输入的字符串 1字符串字段,该字段将包含类似json的{预定义:2,自定义:“” 1个字符串字段,其中包含自定义字符串或预定义选项id(在请求过程中转换) 1个字符串字段,其中将包含全文选项,即使它是预定义的(其中一些预定义选项可以是长文本) 我尝试了1)但将每个“定制就绪”数据的字段数增加一倍似乎并不完美 有什么想法吗?考虑到您可能需要以

我必须存储数据,其中一部分是预定义的,但用户可以选择自定义它。 在数据库中存储这些数据的最佳方式是什么

  • 2个字段,1是预定义选项的整数字段,第二个是自定义用户输入的字符串
  • 1字符串字段,该字段将包含类似json的{预定义:2,自定义:“”
  • 1个字符串字段,其中包含自定义字符串或预定义选项id(在请求过程中转换)
  • 1个字符串字段,其中将包含全文选项,即使它是预定义的(其中一些预定义选项可以是长文本)
  • 我尝试了1)但将每个“定制就绪”数据的字段数增加一倍似乎并不完美


    有什么想法吗?

    考虑到您可能需要以下内容(您的问题不太清楚):

  • 一种表单,其中字符串的可自定义部分有一个输入字段
  • 引用完整字符串的简单方法
  • 管理/管理/验证不可自定义字符串的方法
  • =>使用两个字段:

    class TheModel(Model):
        # if you have a certain constant number of choices, use ChoiceField
        # otherwise use a ForeingKey and create a different model for those
        non_customizable_prefix = ChoiceField(null=False, blank=False, ...)
        # unique? validators? max/min length? null/blank?
        customizable_part = CharField(...)
    
        @property
        def complete_string(self):
            return '{}{}'.format(self. non_customizable_prefix, self. customizable_part)
    

    此模型将在Django表单或Django admin中为您提供两个单独的输入字段,提供简单的方法使
    不可自定义\u前缀
    只读或仅可使用特定权限进行修改。

    举个例子就好了。您使用的是哪个Django版本和哪个RDBMS?