【发布时间】:2020-03-18 19:11:32
【问题描述】:
问题总结:我不明白 Django 中 objects.update_or_create 的语法。
CSV 文件的字段名称位于第一行:
# data.csv
field1, field2,
12, 14,
35, 56,
我在 models.py 中有一个用于我的 postgresql 数据库的模型:
from django.db import models
# example model, real one has 100 fields of different types
class MyModel(models.Model):
field1 = models.IntegerField(blank=True, null=True)
field2 = models.IntegerField(blank=True, null=True)
现在我想在新数据以 CSV 文件形式出现时创建/更新数据库:
import csv
with open('./datafiles/data.csv') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
update, created = MyModel.objects.update_or_create(
defaults={???},
???
)
update.save()
问号标记的地方是什么?
文档说this。
【问题讨论】:
-
MyModel 的唯一标识符是什么?
-
不确定。我的模型中是否需要“id = models.UUIDField...”之类的东西?
-
不,你没有。通常会使用它们,因此您不会在数据库中遇到重复项。
标签: python django csv django-models