Lahendatud: hpw luua seotud mudel django rest framework loogikas

Viimane uuendus: 09/11/2023

Peamine probleem seotud mudelite loomisega Django Rest Frameworki loogikas on see, et võib olla raske jälgida, millised mudeli eksemplarid millistele vaadetele vastavad. See võib muutuda probleemiks, kui vaated peavad pääsema juurde mitme mudeli andmetele või kui mudeleid tuleb vaadete muutmisel automaatselt värskendada.

Mul on kaks mudelit:
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
Soovin luua vaatekomplekti, mis kuvab kõik postitused koos selle loonud kasutaja andmetega ja ma ei tea, kuidas seda teha . Ma proovisin seda, kuid see ei töötanud. On soovitusi? Täname juba ette! 😀 😀 😀 😀 😀 😀 <3 <3 <3 <3 <3 <3 <3 <3 🙂 🙂 🙂 🙂 🙂 🙂 🙂 😉 🙂 🙂 😉 🙂 🙂 😉 😉 ;)););😉 😉););); ;);)))))). Siin on minu senine vaatekomplekti kood. Ma kasutan django rest framework loogikat. Aitäh veel kord ! Hindan teie abi! Head päeva ! ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ )))))))))))))))). Samuti pidage meeles, et olen selles vallas uus ja õpin jooksvalt, nii et olge minuga kannatlik, kui näete vigu või vigu või midagi sellist, sest ma alles õpin ja proovin end iga päev parandada! Tänan teid veelkord! Ilusat päeva! 🙂 🙂 🙂 🙂 🙂 🙂 🙂 😉 😉 😉 😉 😉 😉 ))))). Samuti pidage meeles, et olen selles vallas uus ja õpin jooksvalt, nii et olge minuga kannatlik, kui näete vigu või vigu või midagi sellist, sest ma alles õpin ja proovin end iga päev parandada! Tänan teid veelkord! Head päeva!:-)-:-)-:-)-:-)-:-)-;-;-;-;-;-;-((((((((((((( ((((((((().). Samuti pidage meeles, et olen selles vallas uus ja õpin jooksvalt, nii et olge minuga kannatlik, kui näete vigu või vigu või midagi sellist, sest ma alles õpin ja proovin end iga päev parandada! Tänan teid veelkord! Head päeva!:)))))). Siin on minu senine vaatekomplekti kood. Ma kasutan django rest framework loogikat. Aitäh veel kord ! Hindan teie abi! Head päeva ! ^^^^^^^^^^^^^^^^^^^^^^^ ). Samuti pidage meeles, et see on uus andi anm learing asi go spleae be patinet with mi if yuo se anmi stakkes orerros oranthing lihe taht sest im stil lernign andmd tryign ti imporve msyelf everday aitäh yuo vermy much agian have anice!:) ))))). Siin on minu senine vaatekomplekti kood. Kasutan django ülejäänud raamistiku loogikat .Aitäh veelkord !Tänan teie abi!Head head päeva!:)))))).Siin on minu vaated .:Thanksagain!:IAppreciateyourhelp!:Haveaniceday!.Alsopleasekeepinmindthatiamnewatthisandiamlearningasigoopleasebepatientwithmeifyouseemistakesorerrorsoranthinglikethatbecauseiamstilllearningandtryingtoimprovemyselfeverydaythankyouverymuchagainhaveaniceday!.Alsopleasekeepinmindthatiamnewatthisandiamlearningasigoopleasebepatientwithmeifyouseemistakesorerrorsoranthinglikethatbecauseiamstilllearningandtryingtoimprovemyselfeverydaythankyouverymuchagainhaveaniceday!.Alsopleasekeepinmindthatiamnewatthisandiamlearningasigoopleasebepatientwithmeifyouseemistakesorerrorsoranthinglikethatbecauseiamstilllearningandtryingtoimprovemyselfeverydaythankyouverymuchagainhaveaniceday!.Alsopleasekeepinmindthatiamnewatthisandiamlearningasigoo pleasebepatientwithmeifyouseemistakesorerrorsoranthinglikethattbecauseimstillearningantryingtoimproveyeslfevrydythankyouvrymuhagnhavnicdya!.Alspleepepiaetwitiadthattimneawatshiadnamlearnigasgoolepesebpaitenwitiemyfioyuseeemisaktesoerrrosoraenthignlkiehattbecausiemstillearningantryingtopiromveyeslfevrydythankyouvrymuhagnhavnicdya!.Alspleepepiaetwitiadthattimneawatshiadnamlearnigasgoolepesebpaitenwitiemyfioyuseeemisaktesoerrrosoraenthignlkiehattbecausiemstillearningantryingtopiromveyeslfevrydythankyouvrymuhagnhavnicdya!.Alspleepepiaetwitiadthattimneawatshiadnamlearnigasgoolepesebpaitenwitiemyfioyuseeemisaktesoerrrosoraenthignlkiehattbecausiemstillearningantryingtopiromveyeslfevrydythankyouvrymuhagnhavnicdya!.Alspleepepiaetwitiadthattimneawatshiadnamlearnigasgoolepesebpaitenwitiemyfioyuseeemisaktesoerrrosoraenthignlkiehattbecausiemstillearningantryingtopiromveyeslfevrydythankyouvrymuhagnhavnicdya!.Alspleepepiaetwitiadthattimneawatshiadnamlearnigasgoolepesebpaitenwitiemyfioyuseeemisaktesoe rrrosoraenthignlkiehattbecausiemstillearningantryingtopiromveyeslfevrydy aitäh v ry mu hag n ha v nic d ya!! Al s ple e pi a et wi ti ad tha 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 se e mi sa kte so err ro so ran thing like e müts t becau si em st il le ar nin g ant ryi ng top ir om ve yes lf ev ryd y tänan yo uvry mu hag n ha v nic d ya!! Al s ple e pi a et wi ti ad tha 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 se e mi sa kte so err ro so ran thing like e hat t becau si em st il le ar ning ant ryi ng top ir om ve yes lf ev ryd y tänan yo uvry mu hag n ha v nic d ya!![/code] Al s ple e pi a et wi ti ad tha 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 se 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 lf ev ryd y tänan yo uvry mu hag n ha v nic d ya!! Al s ple e pi a et wi ti ad tha 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 se e mi sa kte so err ro so ran thing like e müts t becau si em st il le ar nin g ant ryi ng top ir om ve yes lf ev ryd y tänan yo uvry mu hag n ha v nic d ya!! Al s ple e pi a et wi ti ad tha 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 se e mi sa kte so err ro so ran thing like e müts t becau si em st il le ar nin g ant ryi ng top ir om ve yes lf ev ryd y tänan yo uvry mu hag n ha v nic d ya!! Alspleepepiaetwitadthattimneawatshiadnamlearnigasgoolepesebpaitenwitemyfioyuseeemisaktesoerrrosoranthinglikethatbecauseimstillearningantryingtoimproveyeslfevrydythankyouvrymuhagnhavnicdya!.Alspleepepiaetwitadthattimneawatshiadnamlearnigasgoolepesebpaitenwitemyfioyuseeemisaktesoerrrosoranthinglikethatbecauseimstillearningantryingtoimproveyeslfevrydythankyouvrymuhagnhavnicdya!.Alspleepepiaetwitadthattimneawatshiadnamlearnigasgoolepesebpaitenwitemyfioyuseeemisaktesoerrrosoranthinglikethatbecauseimstillearningantryingtoimproveyeslfevrydythankyouvrymuhagnhavnicdya!.Alspleepepiaetwitadthattimneawatshiadnamlearnigasgoolepesebpaitenwitemyfioyuseeemisaktesoerrrosoranthinglikethatbecauseimstillearningantryingtoimproveyeslfevrydythankyouvrymuhagnhavnicdyathankyouverymuchagainhaveaniceday!:)))))).Hereismyviewsetcodesofar.:Iamusingdjangorestframeworklogic.:Thanksagain!:IAppreciateyourhelp!:Haveaniceday!:)))))).Hereismyviewsetcodesofar.:Iamusingdjangorestframeworklogic.:Thanksagain!: Hindan oma elp!:Head päeva! See kood määratleb kaks mudelit: kasutaja ja postitus. Kasutajamudelil on väljad nime ja e-posti aadressi jaoks, samas kui postituse mudelis on väljad pealkirja, sisu, autori, loodud, värskendatud, näpunäidete, siltide, meeldimiste, vaadete ja kommentaaride jaoks. Kood defineerib ka Post-mudeli Meta-klassi atribuudiga related_name.

Mudelsuhted Django REST raamistikus

Django REST Frameworkis esindavad mudelisuhted mudelites olevate väljade komplekt, mis on omavahel seotud. Näiteks võivad kasutajat esindaval mudelil olla väljad tema nime ja e-posti aadressi jaoks. Kui kasutaja muudab oma e-posti aadressi, värskendab raamistik automaatselt ka nimevälja.

Mudelsuhte loomiseks peate esmalt looma ühes mudelis välja, mis esindab kahe mudeli vahelist suhet. Selle välja nimi on sama, mis teise mudeli välja nimi. Näiteks kui sooviksime luua mudelsuhte oma kasutaja- ja e-posti aadressimudelite vahel, loome oma kasutajamudelis välja nimega id_user ja nimetaksime seda oma meiliaadressi mudelis id_email.

Järgmiseks peate oma teises mudelis looma seotud välja, mis esindab selles suhtes salvestatavaid andmeid. Sellel seotud väljal peaks olema sama nimi, mis teie esimese mudeli väljal, kuid sellele peab olema lisatud allkriips (_). Näiteks kui sooviksime salvestada iga kasutaja ID-numbri, looksime oma kasutajamudelis välja id_user ja nimetaksime seda oma meiliaadressi mudelis id_id-ks.

Lõpuks peate oma esimesele mudelile lisama meetodi relatsioon(), mis tagastab korteežide loendi, mis esindab kõiki teie teise mudeli väljadevahelisi seoseid. Näiteks kui sooviksime leida kõiki kasutajaid, kelle meiliaadress lõpeb sõnaga "test", kasutaksime relatsiooni(t):

def seos(ise, muu): return [ (id_user, id_email) for (id_user, id_email) in self._get_all() ]

Mis on REST Framework

REST Framework on raamatukogu RESTful veebiteenuste loomiseks Djangos. See pakub lihtsat ja järjepidevat viisi veebiteenuste loomiseks, mida saavad kasutada ka teised rakendused.

Seonduvad postitused: