Get/Update_or_create
3405 ワード
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'},
)
Reference
この問題について(Get/Update_or_create), 我々は、より多くの情報をここで見つけました https://velog.io/@vkdtksdl789/Get-Updateorcreateテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol