Hapus data dari database
Metode berikut memungkinkan Anda untuk menghapus data dari database.
menghapus
delete(each: bool = False, **kwargs) -> int
Penghapusan level QuerySet digunakan untuk menghapus beberapa rekaman sekaligus.
Anda harus memfilter QuerySet terlebih dahulu, atau memberikan masing-masing = Bendera yang benar untuk menghapus seluruh tabel.
Jika Anda tidak memberikan bendera atau filter ini, QueryDefinitionError dinaikkan.
Mengembalikan jumlah baris yang telah dihapus.
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 | import asyncio
import databases
import ormar
import sqlalchemy
from examples import create_drop_database
DATABASE_URL = "sqlite:///test.db"
ormar_base_config = ormar.OrmarConfig(
database=databases.Database(DATABASE_URL),
metadata=sqlalchemy.MetaData(),
)
class Book(ormar.Model):
ormar_config = ormar_base_config.copy(tablename="books")
id: int = ormar.Integer(primary_key=True)
title: str = ormar.String(max_length=200)
author: str = ormar.String(max_length=100)
genre: str = ormar.String(
max_length=100,
default="Fiction",
)
@create_drop_database(base_config=ormar_base_config)
async def run_query():
await Book.objects.create(
title="Tom Sawyer", author="Twain, Mark", genre="Adventure"
)
await Book.objects.create(
title="War and Peace in Space", author="Tolstoy, Leo", genre="Fantasy"
)
await Book.objects.create(
title="Anna Karenina", author="Tolstoy, Leo", genre="Fiction"
)
# delete accepts kwargs that will be used in filter
# acting in same way as queryset.filter(**kwargs).delete()
await Book.objects.delete(genre="Fantasy") # delete all fantasy books
all_books = await Book.objects.all()
assert len(all_books) == 2
asyncio.run(run_query())
|
metode model
Setiap contoh model memiliki seperangkat metode untuk menyimpan, memperbarui, atau memuat dirinya sendiri.
menghapus
Anda dapat menghapus contoh model dengan memanggil metode hapus ().
!!!Tip Baca lebih lanjut tentang metode hapus () dalam metode model
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.
menghilangkan
Model yang relevan dihapus satu per satu.
Hapus hubungan dalam database.
Menentukan bendera tetap\ _ terbalik sebagai Falseormar juga menghapus model yang relevan dari 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 | Album Kelas (ormar. Model):
ormar _ config = base _ ormar _ config copy ()
Id: int = ormar. Integer (primary _ key = Benar)
Nama: str = ormar. String (max _ length = 100)
is _ best _ seller: bool = ormar. Boolean (default = Salah)
Jalur Kelas (ormar. Model):
ormar _ config = base _ ormar _ config copy ()
Id: int = ormar. Integer (primary _ key = Benar)
Album: Opsional [Album] = ormar. ForeignKey (Album)
Judul: str = ormar. String (max _ length = 100)
Posisi: int = ormar. Integer ()
play _ count: int = ormar. Integer (nullable = Benar)
Album = await Album (nama = "Malibu").save ()
Track1 = menunggu Lagu (
Album = album, judul = "The Bird," posisi = 1, play _ count = 30,
).simpan ()
# hapus melalui proxy dari sisi relasi terbalik
Tunggu album.tracks.remove (track1, tetap _ terbalik = Salah)
# trek juga dihapus
Trek = menunggu Track.objeks.all ()
Tegaskan len (trek) = = 0
|
bening
Satu panggilan menghapus semua model terkait.
Juga hapus hubungan dalam database.
Menentukan bendera tetap\ _ terbalik sebagai Falseormar juga menghapus model yang relevan dari 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 | Album Kelas (ormar. Model):
ormar _ config = base _ ormar _ config copy ()
Id: int = ormar. Integer (primary _ key = Benar)
Nama: str = ormar. String (max _ length = 100)
is _ best _ seller: bool = ormar. Boolean (default = Salah)
Jalur Kelas (ormar. Model):
ormar _ config = base _ ormar _ config copy ()
Id: int = ormar. Integer (primary _ key = Benar)
Album: Opsional [Album] = ormar. ForeignKey (Album)
Judul: str = ormar. String (max _ length = 100)
Posisi: int = ormar. Integer ()
play _ count: int = ormar. Integer (nullable = Benar)
Album = await Album (nama = "Malibu").save ()
Track1 = menunggu Lagu (
Album = album,
Judul = "Burung,"
Posisi = 1,
mainkan _ hitung = 30,
).simpan ()
Track2 = menunggu Lagu (
Album = album,
Judul = "Hati tidak punya kesempatan,"
Posisi = 2,
bermain _ hitung = 20,
).simpan ()
# menghapus hubungan saja - > membersihkan kunci asing di trek
Menunggu album.tracks.clear ()
# menghapus juga trek
Tunggu album.tracks.clear (tetap _ terbalik = Salah)
|