python - 为什么我们在django的model_name.object.get_or_create()中的get_or_create之后写[0]

标签 python django

Faker 脚本中的一个函数,用于在我的模型部门添加数据。 部门 = ['I.T.','C.S.E','M.E.','E.C.'] def add_dept(): d = Department.objects.get_or_create(dept_name=random.choice(depatment))[0]

最佳答案

get_or_create() 是一个查询集方法,它返回一个元组 (d, created)。其中 d 是模型实例,createdboolean 标志,它告诉我们对象是否已创建。

所以通过这样获取第一个索引

Department.objects.get_or_create(dept_name=random.choice(depatment))[0]

你实际上在做 (d, created)[0] 总是返回对象。更好的方法是使用下划线 (_) 忽略创建的标志,如下所示:

d, _ = Department.objects.get_or_create(dept_name=random.choice(depatment))

引用:https://docs.djangoproject.com/en/3.0/ref/models/querysets/#get-or-create

关于python - 为什么我们在django的model_name.object.get_or_create()中的get_or_create之后写[0],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62091767/

相关文章:

python - 如何修复tensorwatch中的 'invalid syntax error'?

python - 像 Matlab 一样在 numpy 中打印子数组

python - 在 Pandas 中将元组设置为列名

Django 模板用户请求

python - 在 django 中指定应用程序相关设置的位置

python - 使用 python 模拟库测试与 Django Rest Framework API 交互的函数

python - 无法从以元组为列的字典中创建具有 MultiIndex 列的 pandas DataFrame

python - 没有该列错误信息

ajax - Django - 自定义装饰器仅允许 ajax 请求

python - 扩展 Django 用户模型 OneToOne - 用户配置文件未保存