就我而言,我需要在预期字段数组中设计模型。
{field 1: string, field 2: [""], field 3: [""] }
到目前为止,我设计的模型如下:
class Collaborator(models.Model):
name = models.CharField(max_length=50, blank=True, null = True, )
class Responsibility(models.Model):
name = models.CharField(max_length=50, blank=True, null = True, )
class Class1(models.Model):
field 1 = models.CharField(max_length=50, blank=True, null = True, )
field 2 = models.ManyToManyField(Responsibility, related_name='res_cards', blank=True,null=True )
field 3 = models.ManyToManyField(Collaborator, related_name='col_cards', blank=True, null=True )
所以我希望获取数组中的所有字段,而不是定义新模型
最佳答案
如果您使用 SQLite 作为数据库,则没有 ManyToManyField
的替代方案。
但是,如果您使用(或切换到)PostgreSQL 作为数据库,则可以使用 ArrayField
.
你可以像这样使用它:
field_1 = ArrayField(
models.CharField(max_length=50, blank=True)
)
附注我假设您不会真正将字段命名为 field 1
等,但如果您这样做,请不要使用空格,而是使用下划线,因此 field_1
等.
有很多关于如何使用 Postgres 而不是 SQLite 的信息,例如 this link将是一个好的开始。
但是,在大多数情况下,我仍然建议使用 ManyToManyField,因为它使您能够轻松查询两个对象之间的共享关系,并防止重复数据。
关于mysql - 可以使用 django mysql 模型数组字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58535966/