2017-07-14 15 views
0

get_or_createを使用して、例のようにいくつかのフィールドが存在しない辞書を動的に作成/取得することはできますか?Django - 辞書を使って動的オブジェクトを取得または作成する

これを行うにはどうすればよいでしょうか?

class Car(models.Model): 
    id = models.CharField(max_length=255) 
    name = models.CharField(max_length=255, null=True) 
    brand = models.CharField(max_length=255) 

    drivers = models.ManyToManyField(Driver, related_name='cars') 

class Driver(models.Model): 
    name = models.CharField(max_length=255) 

################ 
driver = Driver.objects.create(id='foo') 
for row in cars: 
    # Dictionary might be {'id': foo, 'brand': ford} so without a name field 
    dictionary = { 
     key:value 
     for key,value in row 
     if value is not None 
    } 

    # Passing the dictionary with keys/fields values/values 
    car_object, created = Car.objects.get_or_create(driver, **dictionary) 

答えて

0

あなたは、そのあなたが投稿するほとんどの方法を行うだけで、多くの分野に多くを変更することがあります。

car_object, created = Car.objects.get_or_create(**dictionary) 
car_object.drivers.add(driver) 
関連する問題