models.py
from django.db import models
class Human(models.Model):
name = models.CharField('Nom', max_length=200)
age = models.IntegerField('âge', null=True, blank=True)
def __str__(self):
return self.name
Normalement, lors de la création d'un objet avec Django, écrivez comme suit.
taro = Human.objects.create(name='Taro', age=30)
taro.save()
hanako = Human(name='Hanako', age=2)
hanako.save()
Il ne devrait y avoir aucun problème.
models.py
class TestModel(models.Model):
field_1 = models.CharField('Champ 1', max_length=255)
field_2 = models.CharField('Champ 2', max_length=255)
...
field_50 = models.IntegerField('Champ 50', null=True)
def __str__(self):
return self.field_23
Un cas où vous souhaitez entrer une base de données à partir d'un fichier CSV avec 50 éléments via l'ORM de Django. En essayant de faire comme le modèle Ueno Human
df = pd.read_csv('test_data.csv')
for _, row in df.iterrows():
t = TestModel.objects.create(field_1=row[0], field_2=row[1], field_3=row[2]....)
Ce n'est pas fou d'écrire 50 pièces.
df = pd.read_csv('test_data.csv')
for _, row in df.iterrows():
dict_data = row.to_dict()
t = TestModel.object.create(**dict_data)
intelligent!
En Python, vous pouvez passer une liste, une taple ou un dictionnaire comme argument d'une fonction tout en la développant.
https://note.nkmk.me/python-argument-expand/
Recommended Posts