Get/Update_or_create


Get_or_create


Get or create(default=none,**kwargs)は(objects,created)と同様に、可変式で返されます.ここでobjectsは戻りまたは作成された部分であり、createはブール値であり、true、falseを返します.objectがある場合はobjectとfalseを返します.
class Cart(TimeStamp):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    product = models.ForeignKey(Product, on_delete=models.CASCADE)
    quantity = models.IntegerField(default=0)
    
    #quantity = models.IntegerField()
cart, is_created = Cart.objects.get_or_create(
                user       = user,
                product_id = product_id,
                quantity   = quantity
            )
            cart.quantity += quantity
            cart.save
野菜かご機能を例に挙げます.入力した値がdbにない場合はdbに作成され、dbにある場合はcartという変数に対応するrowが含まれます.cartは、変数の数を呼び出して値を変更して保存するコードです.モデルの数にdefaultを0と指定するので、createできます.

Update_or_create


上のgetと似たように操作します.値がない場合はcreate、ない場合は値を更新できます.
obj, created = Person.objects.update_or_create(
    first_name='John', 
    last_name='Lennon',
    defaults={'first_name': 'Bob'},
)