Masukkan data ke dalam database
Metode berikut memungkinkan Anda untuk memasukkan data ke dalam database.
-
Membuat (**Kwargs) - > Model
-
get_or_create(_defaults: Optional[Dict[str, Any]] = None, **kwargs) -> Tuple[Model, bool] -
update_or_create(**kwargs) -> Model -
bulk_create(objects: List[Model]) -> None -
Model*Model.save () metode*Model.upsert () metode\ * Model.save\ _ lated ()
-
Query Set Agent*metode
QuerysetProxy.create(**kwargs)\ metode*QuerysetProxy.get_or_create(_defaults: Optional[Dict[str, Any]] = None, **kwargs)\ * metodeQuerysetProxy.update_or_create(**kwargs)
membuat
Buat (**kwargs): - > Model
Buat contoh model, simpan di database, dan kembali untuk memperbarui model (pk diisi jika tidak lulus dan kenaikan otomatis diatur).
Kwarg yang diizinkan adalah nama bidang model dan jenis nilai yang benar.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
Pendekatan lain adalah penciptaan dan ketekunan model split.
1 2 | |
Tip
Memperoleh atau membuat
get_or_create(_defaults: Optional[Dict[str, Any]] = None, **kwargs) -> Tuple[Model, bool]
Buat dan dapatkan kombinasi metode.
Upaya untuk mendapatkan baris yang memenuhi kriteria, dan jika pengecualian NoMatch dilemparkan, baris baru dibuat dengan kwarg dan\ _ default yang diberikan.
Saat menyediakan kamus\ _ default, nilai yang ditetapkan dalam\ _ default akan selalu ditetapkan, termasuk mengesampingkan yang diberikan secara eksplisit. IE get_or_create(_defaults: {"title": "I win"}, title="never used") akan selalu menggunakan "Saya menang" sebagai judul apakah Anda memberikan nilai Anda sendiri dalam kwargs atau tidak.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | |
Peringatan!!!: Album dan album2 pada contoh di atas adalah 2 objek Python yang berbeda, meskipun baris yang setara dalam database! Memperbarui salah satunya tidak akan menyegarkan yang kedua sampai Anda secara eksplisit memuat () data baru dari database.
Perhatikan bahwa jika Anda ingin membuat objek baru, Anda harus melewati nilai kolom pk, atau kolom pk harus disetel ke kenaikan otomatis
Perbarui atau buat
update_or_create(**kwargs) -> Model
Perbarui model, atau buat model baru jika tidak ada kecocokan dalam database.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | |
Perhatikan bahwa jika Anda ingin membuat objek baru, Anda harus melewati nilai kolom pk, atau kolom pk harus disetel ke kenaikan otomatis
pembuatan batch
bulk_create(objects: List["Model"]) -> None
Memungkinkan Anda membuat beberapa objek secara bersamaan.
Anda harus melewati daftar objek model yang valid.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | |
metode model
Setiap contoh model memiliki seperangkat metode untuk menyimpan, memperbarui, atau memuat dirinya sendiri.
# # menyimpan
Anda dapat menggunakan metode QuerySet.make () atau menginisialisasi model sebagai model Pydantic normal dan kemudian memanggil metode save () untuk membuat model baru.
!!!Tip Baca lebih lanjut tentang metode simpan () dalam model-simpan
# # pembaruan masukkan
Ini adalah proxy untuk metode save () atau update model (**kwargs). Jika pk tidak disetel, metode save () akan disebut.
!!!Tip Baca lebih lanjut tentang metode upsert () dalam model-upsert
# # terkait simpan
Metode ini mengulangi semua hubungan model yang disebut metode dan menyebut metode upsert () pada setiap model yang belum disimpan.
!!!Tip Baca lebih lanjut tentang metode save\ _ lated () dalam model-save-lated
Metode QuerysetProxy
Saat mengakses bidang ManyToMany dan ReverseForeignKey yang relevan secara langsung, daftar model terkait dikembalikan.
Tetapi juga memaparkan subset dari QuerySet API, sehingga Anda dapat memfilter, membuat, memilih model terkait, dll. langsung dari model induk.
membuat
Fungsi penciptaan identik dengan yang di atas, tetapi memungkinkan Anda untuk membuat objek terkait dari ujung hubungan yang lain.
!!!Untuk mempelajari lebih lanjut tentang QuerysetProxy, kunjungi bagian QuerysetProxy
Memperoleh atau membuat
Sama persis dengan fungsi get\ _ atau\ _ di atas, tetapi memungkinkan Anda untuk menanyakan atau membuat objek terkait dari ujung hubungan yang lain.
!!!Untuk mempelajari lebih lanjut tentang QuerysetProxy, kunjungi bagian QuerysetProxy
Perbarui atau buat
Fungsi pembaruan\ _ atau\ _ buat persis sama dengan di atas, tetapi memungkinkan Anda memperbarui atau membuat objek terkait dari ujung hubungan yang lain.
!!!Untuk mempelajari lebih lanjut tentang QuerysetProxy, kunjungi bagian QuerysetProxy