django - 初始化模型字段,包括 manytomanyfields

标签 django django-models model many-to-many django-orm

全部,

我有一组相关模型:

 class Foo(models.Model):
   fooName = models.CharField()
   bars = models.ManyToManyField("Bar")

 class Bar(models.Model):
   barName = models.CharField()

当我创建一个新的时,我希望它有一组默认数据。这对于普通字段来说很容易做到。但我不确定如何处理关系字段。假设我希望每个 foo 都用名称“我是一个 foo”和一组三个栏进行初始化,每个栏都有特定的名称(比如,“我是栏一”,“我是栏二”和“我我是三小节。”)。

 def Initialize(self)
   self.fooName = "I am a foo"
   self.bars = ?!?

我只是不确定该怎么做。有什么建议吗?

最佳答案

您不能在没有主键的模型实例上使用多对多关系。

  1. 保存模型,启用 m2m 关系
  2. 保存您的其他模型,以便在另一端也启用 m2m 关系
  3. 使用 .add(),例如 yourmodel.bars.add(othermodel)

如果你想设置默认的初始数据,你应该use fixtures .

关于django - 初始化模型字段,包括 manytomanyfields,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9355736/

相关文章:

javascript - Django:日期格式管理和 unique_together -> "20/03/2020"值具有无效的日期格式。它必须采用 YYYY-MM-DD 格式。”]

html - Django 元素/站点——CSS 更改出现在 Safari 而不是 Chrome 上

python - 如何遍历表单字段选择并显示关联的模型实例字段

mysql - 验证另一个表中数据的唯一性

xcode - 从 Core Data 实体生成 Swift 模型

Java JList 模型 addElement() 破坏了列表的视觉表示

python - 获取 'str' 对象在 Django 中没有属性 'get'

django - 在 Django 中调试查询集

python - 如何在 1.4.2 版本中执行 django syncdb?

django - 从验证器访问模型实例