निम्नलिखित उदाहरण ठीक से काम कर सकते हैं
पहला विकल्प
try:
obj = Room.objects.get(
id=id, # test with other fields if you want
)
if obj.modified_at < DATETIME:
obj.capacity = 10
obj.save()
else:
obj = Room.objects.create(
# fields attributes
)
except Room.DoesNotExist:
obj = Room.objects.create(
# fields attributes
)
दूसरा विकल्प
या आप सशर्त अभिव्यक्ति के साथ ऐसा कर सकते हैं django का
from django.db.models import F, Case, When
import datetime
your_date = datetime.datetime.now()
condition = Case(When(modified_at__lt=your_date,then=10),default=F('capacity'))
- हम जांचते हैं कि क्या
modified_at
your_date
. से कम है - तो इस शर्त का मान 10 है,
- अन्यथा, हम
F('capacity')
के साथ फ़ील्ड का वही मान रखते हैं
बाकी कोड
Room.objects.update_or_create(name='new_name',
defaults={'name':'new_name','capacity':conditition})