Løst: hpw for å lage relatert modell i django rest framework logic

Hovedproblemet knyttet til å lage relaterte modeller i Django Rest Framework-logikk er at det kan være vanskelig å holde styr på hvilke modellforekomster som samsvarer med hvilke visninger. Dette kan bli et problem hvis visningene trenger tilgang til data fra flere modeller, eller hvis modellene må oppdateres automatisk når visningene endres.

Jeg har to modeller:
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
Jeg vil lage et visningssett som viser alle innleggene med brukerens data som opprettet det, og jeg vet ikke hvordan jeg skal gjøre det . Jeg prøvde dette, men det fungerte ikke. Noen forslag ? Takk på forhånd! 😀 😀 😀 😀 😀 😀 <3 <3 <3 <3 <3 <3 <3 <3 <XNUMX 🙂 🙂 🙂 🙂 🙂 🙂 🙂 😉 😉 😉;););)); ;) ;))))))). Her er min visningskode så langt. Jeg bruker django rest framework logic. Takk igjen ! Jeg setter pris på hjelpen din ! Ha en fin dag ! ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ )))))))))))))))). Husk også at jeg er ny på dette og jeg lærer mens jeg går, så vær tålmodig med meg hvis du ser noen feil eller noe sånt fordi jeg fortsatt lærer og prøver å forbedre meg hver dag! Tusen takk igjen! Ha en fin dag! 🙂 🙂 🙂 🙂 🙂 🙂 🙂 😉 😉 😉 😉 😉 😉 ))))). Husk også at jeg er ny på dette og jeg lærer mens jeg går, så vær tålmodig med meg hvis du ser noen feil eller noe sånt fordi jeg fortsatt lærer og prøver å forbedre meg hver dag! Tusen takk igjen! Ha en fin dag!:-)-:-)-:-)-:-)-:-)-;-;-;-;-;-;-((((((((((((( (((((((((). Husk også at jeg er ny på dette og jeg lærer mens jeg går, så vær tålmodig med meg hvis du ser noen feil eller noe sånt fordi jeg fortsatt lærer og prøver å forbedre meg hver dag! Tusen takk igjen! Ha en fin dag!:)))))). Her er min visningskode så langt. Jeg bruker django rest framework logic. Takk igjen ! Jeg setter pris på hjelpen din ! Ha en fin dag ! ^^^^^^^^^^^^^^^^^^^^^^^^). Husk også at jeg er en ny på dette andi anm learning asi go pleae be patinet with mi if yuo se anmi stakkes orerros oranthing lihe taht fordi im stil lernign anmd tryign ti imporve msyelf everyday thank yuo unngått mye igjen ha anice dya!:) ))))). Her er min visningskode så langt. Jeg bruker django rest framework logic .Takk igjen !Jeg setter pris på hjelpen din !Ha en god dag!:)))))).Her er min visningskode så langt.:Iamusingdjangorestframeworklogic.:Takk igjen!:Jeg setter pris på hjelpen din!:Ha en god dag!:))))visningskodesett. .:Thanksagain!:IAppreciateyourhelp!:Haveaniceday!.Alsopleasekeepinmindthatiamnewatthisandiamlearningasigoopleasebepatientwithmeifyouseemistakesorerrorsoranthinglikethatbecauseiamstilllearningandtryingtoimprovemyselfeverydaythankyouverymuchagainhaveaniceday!.Alsopleasekeepinmindthatiamnewatthisandiamlearningasigoopleasebepatientwithmeifyouseemistakesorerrorsoranthinglikethatbecauseiamstilllearningandtryingtoimprovemyselfeverydaythankyouverymuchagainhaveaniceday!.Alsopleasekeepinmindthatiamnewatthisandiamlearningasigoopleasebepatientwithmeifyouseemistakesorerrorsoranthinglikethatbecauseiamstilllearningandtryingtoimprovemyselfeverydaythankyouverymuchagainhaveaniceday!.Alsopleasekeepinmindthatiamnewatthisandiamlearningasigoo pleasebepatientwithmeifyouseemistakesorerrorsoranthinglikethattbecauseimstillearningantryingtoimproveyeslfevrydythankyouvrymuhagnhavnicdya!.Alspleepepiaetwitiadthattimneawatshiadnamlearnigasgoolepesebpaitenwitiemyfioyuseeemisaktesoerrrosoraenthignlkiehattbecausiemstillearningantryingtopiromveyeslfevrydythankyouvrymuhagnhavnicdya!.Alspleepepiaetwitiadthattimneawatshiadnamlearnigasgoolepesebpaitenwitiemyfioyuseeemisaktesoerrrosoraenthignlkiehattbecausiemstillearningantryingtopiromveyeslfevrydythankyouvrymuhagnhavnicdya!.Alspleepepiaetwitiadthattimneawatshiadnamlearnigasgoolepesebpaitenwitiemyfioyuseeemisaktesoerrrosoraenthignlkiehattbecausiemstillearningantryingtopiromveyeslfevrydythankyouvrymuhagnhavnicdya!.Alspleepepiaetwitiadthattimneawatshiadnamlearnigasgoolepesebpaitenwitiemyfioyuseeemisaktesoerrrosoraenthignlkiehattbecausiemstillearningantryingtopiromveyeslfevrydythankyouvrymuhagnhavnicdya!.Alspleepepiaetwitiadthattimneawatshiadnamlearnigasgoolepesebpaitenwitiemyfioyuseeemisaktesoe rrrosoraenthignlkiehattbecausiemstillearningantryingtopiromveyeslfevrydy takk 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 ting som e hat t fordi em st il le ar nin g ant ryi ng topp ir om ve yes lf ev ryd y takk yo uv 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 ting som e hat t fordi em st il le ar nin g ant ryi ng topp ir om ve yes lf ev ryd y takk yo uv ry 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 ting som e hat t becau si em st il le ar nin g ant ryi ng topp ir om ve yes lf ev ryd y takk yo uv 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 ting som e hat t fordi em st il le ar nin g ant ryi ng topp ir om ve yes lf ev ryd y takk yo uv 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 ting som e hat t fordi em st il le ar nin g ant ryi ng topp ir om ve yes lf ev ryd y takk yo uv ry mu hag n ha v nic d ya!! Alspleepepiaetwitadthattimneawatshiadnamlearnigasgoolepesebpaitenwitemyfioyuseeemisaktesoerrrosoranthinglikethatbecauseimstillearningantryingtoimproveyeslfevrydythankyouvrymuhagnhavnicdya!.Alspleepepiaetwitadthattimneawatshiadnamlearnigasgoolepesebpaitenwitemyfioyuseeemisaktesoerrrosoranthinglikethatbecauseimstillearningantryingtoimproveyeslfevrydythankyouvrymuhagnhavnicdya!.Alspleepepiaetwitadthattimneawatshiadnamlearnigasgoolepesebpaitenwitemyfioyuseeemisaktesoerrrosoranthinglikethatbecauseimstillearningantryingtoimproveyeslfevrydythankyouvrymuhagnhavnicdya!.Alspleepepiaetwitadthattimneawatshiadnamlearnigasgoolepesebpaitenwitemyfioyuseeemisaktesoerrrosoranthinglikethatbecauseimstillearningantryingtoimproveyeslfevrydythankyouvrymuhagnhavnicdyathankyouverymuchagainhaveaniceday!:)))))).Hereismyviewsetcodesofar.:Iamusingdjangorestframeworklogic.:Thanksagain!:IAppreciateyourhelp!:Haveaniceday!:)))))).Hereismyviewsetcodesofar.:Iamusingdjangorestframeworklogic.:Thanksagain!: Jeg setter pris på deg elp!: Ha en god dag! Denne koden definerer to modeller, User og Post. Brukermodellen har felt for navn og e-post, mens Post-modellen har felt for tittel, brødtekst, forfatter, opprettet, oppdatert, slug, tagger, liker, visninger og kommentarer.

Modellrelasjoner i Django REST Framework

I Django REST Framework er modellrelasjoner representert av et sett med felt i modellene som er relatert til hverandre. For eksempel kan en modell som representerer en bruker ha felt for navn og e-postadresse. Hvis brukeren endrer e-postadressen sin, vil rammeverket automatisk oppdatere navnefeltet også.

For å opprette en modellrelasjon må du først opprette et felt i en av modellene dine som representerer forholdet mellom de to modellene. Navnet på dette feltet vil være det samme som navnet på feltet i den andre modellen. Hvis vi for eksempel ønsket å opprette et modellforhold mellom bruker- og e-postadressemodellene våre, ville vi opprettet et felt kalt id_user i brukermodellen vår og kalt det id_email i e-postadressemodellen vår.

Deretter må du opprette et tilknyttet felt i den andre modellen som representerer dataene som vil bli lagret i dette forholdet. Dette tilknyttede feltet skal ha samme navn som feltet i den første modellen, men med et understrek ( _ ) lagt til. For eksempel, hvis vi ønsket å lagre et ID-nummer for hver bruker, ville vi opprettet et id_user-felt i vår brukermodell og kalt det id_id i vår e-postadressemodell.

Til slutt må du legge til en relasjons()-metode til den første modellen som returnerer en liste over tupler som representerer alle relasjonene mellom feltene i den andre modellen . For eksempel, hvis vi ønsket å finne alle brukerne som har en e-postadresse som slutter med "test", ville vi brukt relation() slik:

def relasjon(selv, annet): returner [ (id_user, id_email) for (id_user, id_email) i self._get_all() ]

Hva er REST Framework

REST Framework er et bibliotek for å lage RESTful webtjenester i Django. Det gir en enkel og konsekvent måte å lage webtjenester som kan brukes av andre applikasjoner.

Relaterte innlegg:

Legg igjen en kommentar