Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
生成在一个字段中可以有多个值的Django模型_Django_Django Models_Foreign Keys_Seeding_Django Fixtures - Fatal编程技术网

生成在一个字段中可以有多个值的Django模型

生成在一个字段中可以有多个值的Django模型,django,django-models,foreign-keys,seeding,django-fixtures,Django,Django Models,Foreign Keys,Seeding,Django Fixtures,我试图生成一个Django模型,它可以在一个字段中处理多个值。因此,当通过视图查询第一个字段时,用户应通过选择框为第二个字段选择一个值 为了说明问题的背景,我的播种装置如下所示 [ { "model":"myapp.location", "pk":1, "fields":{ "county": "countyname", "places":{ "name": "placename", "name": "place

我试图生成一个Django模型,它可以在一个字段中处理多个值。因此,当通过视图查询第一个字段时,用户应通过选择框为第二个字段选择一个值

为了说明问题的背景,我的播种装置如下所示

[
  {
    "model":"myapp.location",
    "pk":1,
    "fields":{
      "county": "countyname",
      "places":{
        "name": "placename",
        "name": "placename",
        "name": "placename",
        "name": "placename",
        "name": "placename"
      }
    }
}
]
在上面的场景中,location是我的模型的预期名称。现在,通过一个表单,我希望向用户显示“countynames”。选择countyname后,应向用户提供所选县的“地名”,供其选择

我已经为模型尝试了以下格式


课程位置(models.Model):
county=models.CharField(最大长度=100)
places=models.CharField(最大长度=100,选项=places.name)
定义(自我):
return self.countyname

现在,我知道抛出的错误('places'未定义)是正确的。我在问是否有一种方法来定义它(位置),就像它在夹具中一样,或者是否有人对这样一个模型有更好的实现。。。欢迎并赞赏任何替代方法,因为我现在想不出任何东西。

因此,在按照上述评论中的建议摆弄了两个模型和外键之后,我决定修改模型,这也导致了夹具的更改。我在Postgres+Django中读到了关于ArrayFields的文章。我将“地点”字段修改为ArrayField,如下所示:

从django.contrib.postgres.fields导入数组字段
课程位置(models.Model):
county=models.CharField(最大长度=100)
places=ArrayField(models.CharField(max_length=100),blank=True)
定义(自我):
回归自我县
接下来,将JSON fixture更改为:

[
  {
    "model":"myapp.location",
    "pk":1,
    "fields":{
      "county": "countyname",
      "places":["placename","placename","placename","placename"]
    }
  }
]
运行
python manage.py loaddata fixturename.json之后,

它成功了,DB被植入了种子

因此,在按照上面评论中的建议摆弄了两个模型和外键之后,我决定修改模型,这也导致了夹具的更改。我在Postgres+Django中读到了关于ArrayFields的文章。我将“地点”字段修改为ArrayField,如下所示:

从django.contrib.postgres.fields导入数组字段
课程位置(models.Model):
county=models.CharField(最大长度=100)
places=ArrayField(models.CharField(max_length=100),blank=True)
定义(自我):
回归自我县
接下来,将JSON fixture更改为:

[
  {
    "model":"myapp.location",
    "pk":1,
    "fields":{
      "county": "countyname",
      "places":["placename","placename","placename","placename"]
    }
  }
]
运行
python manage.py loaddata fixturename.json之后,

它成功了,DB被植入了种子

听起来您需要一个通过ForeignKey连接的独立位置模型。该播种装置是固定约束吗?因为它可能需要改变才能解决你的问题。@DanielRoseman我会工作的。然而,我想创建一个干燥的数据集,以便在以后的项目中重用。我想我已经找到了一个解决方案,我将在接下来的几分钟内发布。@DanielHolmes True。我已经修改了固定装置,使之适合工作的模型。。我在几周内发布它。。。谢谢Guysounds你需要一个单独的地方模型通过外键连接。播种夹具是固定约束吗?因为它可能需要改变才能解决你的问题。@DanielRoseman我会工作的。然而,我想创建一个干燥的数据集,以便在以后的项目中重用。我想我已经找到了一个解决方案,我将在接下来的几分钟内发布。@DanielHolmes True。我已经修改了固定装置,使之适合工作的模型。。我在几周内发布它。。。谢谢各位