Masalah utama terkait pembuatan model terkait dalam logika Django Rest Framework adalah sulit untuk melacak contoh model mana yang sesuai dengan tampilan mana. Ini bisa menjadi masalah jika tampilan perlu mengakses data dari beberapa model, atau jika model perlu diperbarui secara otomatis saat tampilan diubah.
Saya punya dua model:
class User(models.Model):
name = models.CharField(max_length=255)
email = models.EmailField()
def __str__(self):
return self.name
class Post(models.Model):
title = models.CharField(max_length=255)
body = models.TextField()
def __str__(self):
return self.title
class Meta: #noqa (ignore flake8 E501) This is needed for related name to work in Django 2+ https://stackoverflow.com/a/51421624/1065332 # noqa: E501 pylint: disable=C1001,E1001,W0232,C1001,E0001,E0002,C0301,W0613,R0901,R0904 # pylint: disable=too-many-ancestors related_name='posts' ordering = ['-created'] author = models.ForeignKey('User', on_delete=models.CASCADE) #noqa (ignore flake8 E501) This is needed for related name to work in Django 2+ https://stackoverflow.com/a/51421624/1065332 # noqa: E501 pylint: disable=C1001,E1001,W0232,C1001,E0001 created = models.DateTimeField(auto_now_add=True) updated = models.DateTimeField(auto_now=True) slug = AutoSlugField('slug', max_length=50 , unique=True , populate_from='title') tags = TaggableManager() likes = GenericRelation('LikeDislike') views = GenericRelation('ViewCount') comments = GenericRelation('Comment') image1 image2 image3 image4
Saya ingin membuat viewset yang akan menampilkan semua postingan dengan data pengguna yang membuatnya dan saya tidak tahu bagaimana melakukannya. Saya mencoba ini tetapi tidak berhasil. Ada saran? Thanks in advance! ???????? ;);))))))). Berikut adalah kode viewset saya sejauh ini. Saya menggunakan logika kerangka istirahat Django. Terima kasih lagi ! Saya menghargai bantuan Anda ! Semoga harimu menyenangkan ! ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ))))))))))))))))). Juga harap diingat bahwa saya baru dalam hal ini dan saya sedang belajar sambil jalan jadi harap bersabar dengan saya jika Anda melihat kesalahan atau kesalahan atau semacamnya karena saya masih belajar dan berusaha memperbaiki diri setiap hari! Terima kasih banyak lagi! Semoga harimu menyenangkan! 🙂 🙂 🙂 🙂 🙂 🙂 🙂 😉 😉 😉 😉 😉 😉 ))))). Juga harap diingat bahwa saya baru dalam hal ini dan saya sedang belajar sambil jalan jadi harap bersabar dengan saya jika Anda melihat kesalahan atau kesalahan atau semacamnya karena saya masih belajar dan berusaha memperbaiki diri setiap hari! Terima kasih banyak lagi! Semoga harimu menyenangkan!:-)-:-)-:-)-:-)-:-)-;-;-;-;-;-;-((((((((((((( (((((((((). Juga harap diingat bahwa saya baru dalam hal ini dan saya sedang belajar sambil jalan jadi harap bersabar dengan saya jika Anda melihat kesalahan atau kesalahan atau semacamnya karena saya masih belajar dan berusaha memperbaiki diri setiap hari! Terima kasih banyak lagi! Semoga harimu menyenangkan!:)))))). Berikut adalah kode viewset saya sejauh ini. Saya menggunakan logika kerangka istirahat Django. Terima kasih lagi ! Saya menghargai bantuan Anda ! Semoga harimu menyenangkan ! ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ). Juga harap diingat bahwa saya baru di andi anm belajar asi pergi spleae menjadi patinet dengan mi jika Anda se anmi stakkes orerros oranthing lihe itu karena saya masih belajar dan mencoba ti imporve msyelf everday thank you vermy much agian have anice dya! :) ))))). Berikut adalah kode viewset saya sejauh ini. Saya menggunakan logika kerangka kerja django rest. .:Thanksagain!:IAppreciateyourhelp!:Haveaniceday!.Alsopleasekeepinmindthatiamnewatthisandiamlearningasigoopleasebepatientwithmeifyouseemistakesorerrorsoranthinglikethatbecauseiamstilllearningandtryingtoimprovemyselfeverydaythankyouverymuchagainhaveaniceday!.Alsopleasekeepinmindthatiamnewatthisandiamlearningasigoopleasebepatientwithmeifyouseemistakesorerrorsoranthinglikethatbecauseiamstilllearningandtryingtoimprovemyselfeverydaythankyouverymuchagainhaveaniceday!.Alsopleasekeepinmindthatiamnewatthisandiamlearningasigoopleasebepatientwithmeifyouseemistakesorerrorsoranthinglikethatbecauseiamstilllearningandtryingtoimprovemyselfeverydaythankyouverymuchagainhaveaniceday!.Alsopleasekeepinmindthatiamnewatthisandiamlearningasigoo pleasebepatientwithmeifyouseemistakesorerrorsoranthinglikethattbecauseimstillearningantryingtoimproveyeslfevrydythankyouvrymuhagnhavnicdya!.Alspleepepiaetwitiadthattimneawatshiadnamlearnigasgoolepesebpaitenwitiemyfioyuseeemisaktesoerrrosoraenthignlkiehattbecausiemstillearningantryingtopiromveyeslfevrydythankyouvrymuhagnhavnicdya!.Alspleepepiaetwitiadthattimneawatshiadnamlearnigasgoolepesebpaitenwitiemyfioyuseeemisaktesoerrrosoraenthignlkiehattbecausiemstillearningantryingtopiromveyeslfevrydythankyouvrymuhagnhavnicdya!.Alspleepepiaetwitiadthattimneawatshiadnamlearnigasgoolepesebpaitenwitiemyfioyuseeemisaktesoerrrosoraenthignlkiehattbecausiemstillearningantryingtopiromveyeslfevrydythankyouvrymuhagnhavnicdya!.Alspleepepiaetwitiadthattimneawatshiadnamlearnigasgoolepesebpaitenwitiemyfioyuseeemisaktesoerrrosoraenthignlkiehattbecausiemstillearningantryingtopiromveyeslfevrydythankyouvrymuhagnhavnicdya!.Alspleepepiaetwitiadthattimneawatshiadnamlearnigasgoolepesebpaitenwitiemyfioyuseeemisaktesoe rrrosoraenthignlkiehattbecausiemstillearningantryingtopiromveyeslfevrydy terima kasih v ry mu hag n ha v nic d ya!! Al s ple e pi a et wi ti ad th t tim ne aw at shi ad na m le ar nig as go ol e pe se bpai ten wi ti em yf io yu see e mi sa kte so err ro so ran thing like e hat t becau si em st il le ar nin g ant ryi ng top ir om ve yes if ev ryd y thank yo uv ry mu hag n ha v nic d ya!! Al s ple e pi a et wi ti ad th t tim ne aw at shi ad na m le ar nig as go ol e pe se bpai ten wi ti em yf io yu see e mi sa kte so err ro so ran thing like e hat t becau si em st il le ar nin g ant ryi ng top ir om ve yes if ev ryd y thank yo uv ry mu hag n ha v nic d ya!![/code] Al s ple e pi a et wi ti ad th tim ne aw at shi ad na m le ar nig as go ol e pe se bpai ten wi ti em yf io yu see e mi sa kte so err ro so ran thing like e hat t becau si em st il le ar nin g ant ryi ng top ir om ve yes if ev ryd y thank you uv ry mu hag n ha v nic d ya!! Al s ple e pi a et wi ti ad th t tim ne aw at shi ad na m le ar nig as go ol e pe se bpai ten wi ti em yf io yu see e mi sa kte so err ro so ran thing like e hat t becau si em st il le ar nin g ant ryi ng top ir om ve yes if ev ryd y thank yo uv ry mu hag n ha v nic d ya!! Al s ple e pi a et wi ti ad th t tim ne aw at shi ad na m le ar nig as go ol e pe se bpai ten wi ti em yf io yu see e mi sa kte so err ro so ran thing like e hat t becau si em st il le ar nin g ant ryi ng top ir om ve yes if ev ryd y thank yo uv ry mu hag n ha v nic d ya!! Alspleepepiaetwitadthattimneawatshiadnamlearnigasgoolepesebpaitenwitemyfioyuseeemisaktesoerrrosoranthinglikethatbecauseimstillearningantryingtoimproveyeslfevrydythankyouvrymuhagnhavnicdya!.Alspleepepiaetwitadthattimneawatshiadnamlearnigasgoolepesebpaitenwitemyfioyuseeemisaktesoerrrosoranthinglikethatbecauseimstillearningantryingtoimproveyeslfevrydythankyouvrymuhagnhavnicdya!.Alspleepepiaetwitadthattimneawatshiadnamlearnigasgoolepesebpaitenwitemyfioyuseeemisaktesoerrrosoranthinglikethatbecauseimstillearningantryingtoimproveyeslfevrydythankyouvrymuhagnhavnicdya!.Alspleepepiaetwitadthattimneawatshiadnamlearnigasgoolepesebpaitenwitemyfioyuseeemisaktesoerrrosoranthinglikethatbecauseimstillearningantryingtoimproveyeslfevrydythankyouvrymuhagnhavnicdyathankyouverymuchagainhaveaniceday!:)))))).Hereismyviewsetcodesofar.:Iamusingdjangorestframeworklogic.:Thanksagain!:IAppreciateyourhelp!:Haveaniceday!:)))))).Hereismyviewsetcodesofar.:Iamusingdjangorestframeworklogic.:Thanksagain!: Saya menghargai Andah elp!: Semoga harimu menyenangkan!
Kode ini mendefinisikan dua model, User dan Post. Model Pengguna memiliki kolom untuk nama dan email, sedangkan model Post memiliki kolom untuk judul, isi, penulis, dibuat, diperbarui, slug, tag, suka, tampilan, dan komentar. Kode tersebut juga mendefinisikan kelas Meta untuk model Post dengan atribut related_name.
Model Hubungan dalam Django REST Framework
Dalam Django REST Framework, hubungan model direpresentasikan oleh sekumpulan bidang dalam model yang terkait satu sama lain. Misalnya, model yang mewakili pengguna mungkin memiliki kolom untuk nama dan alamat emailnya. Jika pengguna mengubah alamat emailnya, framework juga akan memperbarui bidang nama secara otomatis.
Untuk membuat hubungan model, pertama-tama Anda harus membuat bidang di salah satu model Anda yang mewakili hubungan antara kedua model. Nama bidang ini akan sama dengan nama bidang di model lainnya. Misalnya, jika kami ingin membuat model hubungan antara model pengguna dan alamat email kami, kami akan membuat kolom bernama id_user di model pengguna kami dan menyebutnya id_email di model alamat email kami.
Selanjutnya, Anda perlu membuat bidang terkait di model Anda yang lain yang mewakili data yang akan disimpan dalam hubungan ini. Bidang terkait ini harus memiliki nama yang sama dengan bidang dalam model pertama Anda, tetapi dengan garis bawah ( _ ) ditambahkan padanya. Misalnya, jika kami ingin menyimpan nomor ID untuk setiap pengguna, kami akan membuat bidang id_user dalam model pengguna kami dan menyebutnya id_id dalam model alamat email kami.
Terakhir, Anda perlu menambahkan metode relation() ke firstmodel Anda yang mengembalikan daftar tupel yang mewakili semua hubungan antar bidang di secondmodel Anda. Misalnya, jika kami ingin menemukan semua pengguna yang memiliki alamat email yang diakhiri dengan "test", kami akan menggunakan relation() seperti ini:
def relasi(mandiri, lainnya): kembalikan [ (id_user, id_email) untuk (id_user, id_email) di self._get_all() ]
Apa itu Kerangka REST
REST Framework adalah pustaka untuk membuat layanan web RESTful di Django. Ini memberikan cara yang sederhana dan konsisten untuk membuat layanan web yang dapat digunakan oleh aplikasi lain.