django - 如何按名称设置 Django 模型字段?

标签 django django-models

这看起来应该非常简单,所以我一定遗漏了一些东西。我只想按名称设置模型实例中字段的值。假设我有:

class Foo(Model):
  bar = CharField()

f = Foo()

我想通过名称设置 bar 的值,而不是通过访问该字段。所以像这样:

f.fields['bar'] = 'BAR"

代替

f.bar = 'BAR'

我试过 setattr 但它不会将值保存在数据库中。我也尝试过 _meta.fields,但一路上遇到了各种错误。

最佳答案

如果通过setattr修改值,修改后需要记得保存模型。过去我曾遇到过这样的问题:我更改了值但忘记保存模型,但得到了相同的结果。

setattr(f, 'bar', 'BAR')
f.save()

关于django - 如何按名称设置 Django 模型字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1545645/

相关文章:

jquery - 在一页上显示多个依赖的Python模型

没有Neo4Django的Django和Neo4j

python - 在 django 中为模型编写自定义更新方法

python - 在 Django 中收集单独的模型

django - 如何将 QuerySet 过滤/减少到每第 n 行?

django - `basename` 未指定参数,并且可能 '\

python - Django 模板中的简单数学

python - Django 测试用例警告 : Converting column 'options' from VARCHAR to TEXT

jquery - 有没有办法用查询字符串填充表单?

mysql - 将 unicode 插入数据库时​​ MySQL 中的排序规则非法混合