tgoop.com/djangolearn_ir/810
Create:
Last Update:
Last Update:
چطور کوئری آپدیت بهتری داخل #جنگو بزنیم؟
روشهای زیادی برای آپدیت کردن یک آجکت یا چندتا آبجکت داخل جنگو وجود داره، ساده ترین حالتی که افراد استفاده میکنن همچین چیزی.
مدل فرضی:
class Records(models.Model):
name = models.Charfield()
balance = models.InetegerField()
country =models.CharField()
برای مثال اگه کسی بخواد یک آبجکت از این مدل رو آپدیت کنه همچین کار میکنه:
r = Records.objects.get(pk=1)
r.name = "new name"
r.save()
که این اوکیه، بد نیست و آپدیت براتون انجام میده اما یک نکته رو بهش توجه نمیکنید!
زمانی که شما یک آبجکت این شکلی آپدیت میکنید در اصل دارید تمام فیلدها رو آپدیت میکنید :) ولی خب مقدار فیلدهای قبلی همون قبلی ها آپدیت میشه، برای اینکه از این کار جلو گیری کنید باید explicit ( نمیدونم، فکر کنم دقیق تر معنی بده) باشید یعنی، دقیقا بگید کدوم فیلد/فیلدها میخوایید آپدیت کنید. این کار میکنید با استفاده از پارامتر update_fields انجام بدید.
r = Records.objects.get(pk=1)
r.name = "new name"
r.save(update_fields=["name"])
البته باید مراقب باشید که حتما فیلدهایی که میخوایید آپدیت کنید رو داخلش بزارید مگرنه آپدیت نمیشن.
پست بعدی آپدیت کردن چند آبجکت...
@TorhamDevCH
BY جنگولرن
Share with your friend now:
tgoop.com/djangolearn_ir/810