Glavni problem vezan za kreiranje povezanih modela u logici Django Rest Frameworka je taj što može biti teško pratiti koje instance modela odgovaraju kojim pogledima. Ovo može postati problem ako pogledi trebaju pristupiti podacima iz više modela ili ako se modeli moraju automatski ažurirati kada se pogledi mijenjaju.
imam dva modela:
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
Želim da kreiram skup prikaza koji će prikazati sve postove sa podacima korisnika koji ga je kreirao, a ne znam kako da to uradim. Probao sam ovo ali nije išlo. Neki prijedlog ? Hvala unaprijed! 😀 😀 😀 😀 😀 😀 <3 <3 <3 <3 <3 <3 <3 <3 🙂 🙂 🙂 🙂 🙂 🙂 🙂 😉 😉 😉););););););); ;);)))))). Evo mog koda pregleda do sada. Koristim django rest framework logiku. Hvala još jednom ! Cijenim tvoju pomoć ! Prijatan dan! ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ))))))))))))))). Također, imajte na umu da sam nova u ovome i učim kako napredujem, stoga budite strpljivi sa mnom ako vidite bilo kakve greške ili greške ili nešto slično jer još uvijek učim i pokušavam se poboljšati svaki dan! Hvala još jednom! Prijatan dan! 🙂 🙂 🙂 🙂 🙂 🙂 🙂 😉 😉 😉 😉 😉 😉 ))))). Također, imajte na umu da sam nova u ovome i učim kako napredujem, stoga budite strpljivi sa mnom ako vidite bilo kakve greške ili greške ili nešto slično jer još uvijek učim i pokušavam se poboljšati svaki dan! Hvala još jednom! Ugodan dan!:-)-:-)-:-)-:-)-:-)-;-;-;-;-;-;-((((((((((((((( ((((((((().).).. Također, imajte na umu da sam nova u ovome i učim kako napredujem, stoga budite strpljivi sa mnom ako vidite bilo kakve greške ili greške ili nešto slično jer još uvijek učim i pokušavam se poboljšati svaki dan! Hvala još jednom! Prijatan dan!:)))))). Evo mog koda pregleda do sada. Koristim django rest framework logiku. Hvala još jednom ! Cijenim tvoju pomoć ! Prijatan dan! ^^^^^^^^^^^^^^^^^^^^^^^^^ ). Također, imajte na umu da sam novi u ovome i učim kao da se patite sa mnom ako ste anmi stakkes orerros oranthing lihe taht jer sam još uvijek lernign i pokušavam da imporve msyelf everday hvala yuo vermy much agian have anice dya!:) ))))). Evo mog koda pregleda do sada. Ja koristim django rest framework logiku .Hvala još jednom !Cijenim vašu pomoć !Haveaniceday!:)))))).Hereismyviewsetcodesofar.:Iamusingdjangorestframeworklogic.:Hvala ponovo!:IAppreciateyourhelp!:Haveaniceday!:)))))).Hereismyviewsetcodes. .:Thanksagain!:IAppreciateyourhelp!:Haveaniceday!.Takođereasekeepin mindthatiamnewatthisandiamlearningasigoopleasebepatientwithmeifyouseemgreesorrrorsorranthing likethatbecauseiamstillearningandtryingtoimprovemyselfeuvehaseiamstillearningandtryingtoimprovemyselfeuvehaseiamlearningaitriingtoimprovethankyselfeuve! mindthatiamnewatthisandiamlearningasigoopleasebepatientwithmeifyouseemgreesorrrorsorranthinglikethat jer sam još uvijek učim i pokušavam poboljšati sebesvaki dan hvala vamuverymuchagainhaineaniceday!. oranthing likethat jer još uvijek učim i pokušavam poboljšati sebe. gnhavnicdya!.Alspleepepiaetwitiadthattimneawatshiadnamlearnigasgoolepesebpaitenwitiemyfioyuseeemisaktesoerrrosoraenthignlkiehattbecausiemstillearningantryingtopiromveyeslfevrydythankyouvrymuhawtiapihathakyouvrymuhawtia dnamlearnigasgoolepesebpaitenwitiemyfioyuseeemisaktesoerrrosoraenthignlkiehattbecausiemstillearningantryingtopiromveyeslfevrydythankyouvrymuhagnhavnicdya!.fiouvrymuhagnhavnicdya!. errrosoraenthignlkiehattbecausiemstillearningantryingtopiromveyeslfevrydythankyouvrymuhagnhavnicdya!.Alspleepepiaetwitiadthattimneawatshiadnamlearnigasgoolepesebpaitenwitiemyfioyuseeemisakryentrymuhagnhavnicdya!. eslfevrydythankyouvrymuhagnhavnicdya. 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 hvala vam 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 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 hvala uv ry mu hag n ha v nic d ya!![/code] Al sple e pi a et witi 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 stvar poput e hat t jer si em st il le ar ning ant ryi ng top ir om ve yes lf ev ryd y hvala 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 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 hvala vam 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 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 hvala vam uv ry mu hag n ha v nic d ya!! Alspleepepiaetwitadthattimneawatshiadnamlearnigasgoolepesebpaitenwitemyfioyuseeemisaktesoerrrosoranthinglikethatbecauseimstillearninganttryingtoimproveyeslfevrydythankyouvrymuhagnhavnicdya!.Alspleemagnhavnicdyapeat! itenwitemyfioyuseeemisaktesoerrrosoranthinglikethatbecauseimstillearningantryingtoimproveyeslfevrydythankyouvrymuhagnhavnicdya!.Alspleepepiaetwitadthattimneawatshiadnamlearnigasgoolepesemispaytenwiearthingsliketfiemispaytenwieauseerthieoim antryingtoimproveyeslfevrydythankyouvrymuhagnhavnicdya!.Alspleepepiaetwitadthattimneawatshiadnamlearnigasgoolepesebpaitenwitemyfioyuseeemisaktesoerrrosoranthinglikethatbecauseimstillearningantryingthankyesthankyoevdymuhavhavro verymuchagainhaveaniceday!:)))))).Hereismyviewsetcodeso far.:Iamusingdjangorestframeworklogic.:Hvala još jednom!:IAppreciateyourhelp!:Haveaniceday!:)))))).Hereismyviewsetcodeso far.:Iamusingdjangorestframeworklogic.:Thangorestframeworklogic.:Thangorestframeworklogic. Iappreciateyourhelp!:Haveaniceday!
Ovaj kod definira dva modela, User i Post. Model korisnika ima polja za ime i e-poštu, dok model Post ima polja za naslov, tijelo, autora, kreirano, ažurirano, oznaku, oznake, lajkove, preglede i komentare.
Odnosi modela u Django REST okviru
U Django REST Frameworku, odnosi modela su predstavljeni skupom polja u modelima koja su međusobno povezana. Na primjer, model koji predstavlja korisnika može imati polja za njegovo ime i adresu e-pošte. Ako korisnik promijeni svoju adresu e-pošte, okvir će automatski ažurirati i polje imena.
Da biste kreirali odnos modela, prvo morate kreirati polje u jednom od vaših modela koje predstavlja odnos između dva modela. Ime ovog polja bit će isto kao i naziv polja u drugom modelu. Na primjer, ako želimo stvoriti odnos modela između modela našeg korisnika i modela adrese e-pošte, kreirali bismo polje pod nazivom id_user u našem modelu korisnika i nazvali ga id_email u našem modelu adrese e-pošte.
Zatim morate kreirati povezano polje u vašem drugom modelu koje predstavlja podatke koji će biti pohranjeni u ovom odnosu. Ovo povezano polje bi trebalo da ima isto ime kao polje u vašem prvom modelu, ali sa donjom crtom ( _ ) koja mu se dodaje. Na primjer, ako želimo pohraniti ID broj za svakog korisnika, kreirali bismo polje id_user u našem modelu korisnika i nazvali ga id_id u našem modelu adrese e-pošte.
Konačno, svom prvom modelu morate dodati metodu relation() koja vraća listu torki koje predstavljaju sve odnose između polja u vašem drugom modelu. Na primjer, ako želimo pronaći sve korisnike koji imaju adresu e-pošte koja završava s “test”, koristili bismo relaciju() na sljedeći način:
def relation(self, other): vrati [ (id_user, id_email) za (id_user, id_email) u self._get_all() ]
Šta je REST Framework
REST Framework je biblioteka za kreiranje RESTful web servisa u Djangu. Pruža jednostavan i dosljedan način za kreiranje web usluga koje mogu koristiti druge aplikacije.