PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Update_or_create bersyarat dengan Django

Contoh berikut mungkin berfungsi dengan baik

Opsi Pertama

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
    )

Opsi ke-2

atau Anda dapat melakukannya dengan Ekspresi Bersyarat dari 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'))
  • Kami memeriksa apakah modified_at kurang dari your_date
  • maka nilai kondisi ini adalah 10,
  • lainnya, kami mempertahankan nilai bidang yang sama dengan F('capacity')

kode lainnya

Room.objects.update_or_create(name='new_name',
           defaults={'name':'new_name','capacity':conditition})



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. UUID yang dapat diurutkan dan menimpa ActiveRecord::Base

  2. Tabel bernilai Parameter Setara di Postgresql

  3. Parameter Koneksi PDO Keep-Alive TCP

  4. KESALAHAN:kueri tidak memiliki tujuan untuk data hasil

  5. instalasi instace tunggal postgresql