Решено: hpw для создания связанной модели в логике фреймворка django rest.

Последнее обновление: 09/11/2023

Основная проблема, связанная с созданием связанных моделей в логике Django Rest Framework, заключается в том, что может быть сложно отслеживать, какие экземпляры модели соответствуют каким представлениям. Это может стать проблемой, если представлениям требуется доступ к данным из нескольких моделей или если модели необходимо обновлять автоматически при изменении представлений.

У меня две модели:
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
Я хочу создать вьюсет, который будет показывать все посты с данными пользователя, который его создал, и я не знаю, как это сделать. Я пробовал это, но это не сработало. Какие-либо предложения ? Заранее спасибо! 😀 😀 😀 😀 😀 😀 <3 <3 <3 <3 <3 <3 <3 <3 🙂 🙂 🙂 🙂 🙂 🙂 🙂 😉 😉 😉 😉 😉 ;);)))))). Вот мой код viewset на данный момент. Я использую логику django rest framework. Еще раз спасибо ! Я ценю вашу помощь ! Хорошего дня ! ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ))))))))))))))). Также, пожалуйста, имейте в виду, что я новичок в этом, и я учусь на ходу, поэтому, пожалуйста, будьте терпеливы со мной, если вы видите какие-либо ошибки или ошибки или что-то в этом роде, потому что я все еще учусь и пытаюсь улучшить себя каждый день! Большое спасибо еще раз! Хорошего дня! 🙂 🙂 🙂 🙂 🙂 🙂 🙂 😉 😉 😉 😉 😉 😉 ))))). Также, пожалуйста, имейте в виду, что я новичок в этом, и я учусь на ходу, поэтому, пожалуйста, будьте терпеливы со мной, если вы видите какие-либо ошибки или ошибки или что-то в этом роде, потому что я все еще учусь и пытаюсь улучшить себя каждый день! Большое спасибо еще раз! Хорошего дня!:-)-:-)-:-)-:-)-:-)-;-;-;-;-;-;-((((((((((((( ((((((((((). Также, пожалуйста, имейте в виду, что я новичок в этом, и я учусь на ходу, поэтому, пожалуйста, будьте терпеливы со мной, если вы видите какие-либо ошибки или ошибки или что-то в этом роде, потому что я все еще учусь и пытаюсь улучшить себя каждый день! Большое спасибо еще раз! Хорошего дня!:)))))). Вот мой код viewset на данный момент. Я использую логику django rest framework. Еще раз спасибо ! Я ценю вашу помощь ! Хорошего дня ! ^^^^^^^^^^^^^^^^^^^^^^^^). Также, пожалуйста, имейте в виду, что я новичок в этом, и я учусь, а также иди, говори, будь патинетом с ми, если ты, анми, стаккес или ерррос, или что-то такое, потому что я все еще учусь и стараюсь каждый день улучшать себя, спасибо тебе, я очень много агиан, у тебя есть друг!:) ))))). Вот мой код viewset на данный момент. Я использую логику django rest framework. Еще раз спасибо! Я ценю вашу помощь! Haveaniceday!:)))))). Hereismyviewsetcodesofar.: Iamusingdjangorestframeworklogic.: Еще раз спасибо!: IPpreciateyourhelp!: Haveaniceday!:)))))). Hereismyviewsetcodesofar.: Iamusingdjangorestframeworklogic .:Thanksagain!:IAppreciateyourhelp!:Haveaniceday!.Alsopleasekeepinmindthatiamnewatthisandiamlearningasigoopleasebepatientwithmeifyouseemistakesorerrorsoranthinglikethatbecauseiamstilllearningandtryingtoimprovemyselfeverydaythankyouverymuchagainhaveaniceday!.Alsopleasekeepinmindthatiamnewatthisandiamlearningasigoopleasebepatientwithmeifyouseemistakesorerrorsoranthinglikethatbecauseiamstilllearningandtryingtoimprovemyselfeverydaythankyouverymuchagainhaveaniceday!.Alsopleasekeepinmindthatiamnewatthisandiamlearningasigoopleasebepatientwithmeifyouseemistakesorerrorsoranthinglikethatbecauseiamstilllearningandtryingtoimprovemyselfeverydaythankyouverymuchagainhaveaniceday!.Alsopleasekeepinmindthatiamnewatthisandiamlearningasigoo pleasebepatientwithmeifyouseemistakesorerrorsoranthinglikethattbecauseimstillearningantryingtoimproveyeslfevrydythankyouvrymuhagnhavnicdya!.Alspleepepiaetwitiadthattimneawatshiadnamlearnigasgoolepesebpaitenwitiemyfioyuseeemisaktesoerrrosoraenthignlkiehattbecausiemstillearningantryingtopiromveyeslfevrydythankyouvrymuhagnhavnicdya!.Alspleepepiaetwitiadthattimneawatshiadnamlearnigasgoolepesebpaitenwitiemyfioyuseeemisaktesoerrrosoraenthignlkiehattbecausiemstillearningantryingtopiromveyeslfevrydythankyouvrymuhagnhavnicdya!.Alspleepepiaetwitiadthattimneawatshiadnamlearnigasgoolepesebpaitenwitiemyfioyuseeemisaktesoerrrosoraenthignlkiehattbecausiemstillearningantryingtopiromveyeslfevrydythankyouvrymuhagnhavnicdya!.Alspleepepiaetwitiadthattimneawatshiadnamlearnigasgoolepesebpaitenwitiemyfioyuseeemisaktesoerrrosoraenthignlkiehattbecausiemstillearningantryingtopiromveyeslfevrydythankyouvrymuhagnhavnicdya!.Alspleepepiaetwitiadthattimneawatshiadnamlearnigasgoolepesebpaitenwitiemyfioyuseeemisaktesoe rrrosoraenthignlkiehattbecausiemдо сих поробучениеanttryingtopiromveyeslfevrydy спасибо v ry mu hag n ha v nic d ya!! Al sple e pi a et wi ti ad that t tim ne aw at shi ad na m le ar nig as gool e pe se bpai ten wi ti em yf io yu se e mi sakte so err ro so ran вещь вроде е шляпа t потому что si em все еще il ar ning g ant rying top ir om ve yes lf ev ryd y спасибо yo uv ry mu hag n ha v nic d ya!! Al sple e pi a et wi ti ad that t tim ne aw at shi ad na m le ar nig as gool e pe se bpai ten wi ti em yf io yu se e mi sakte so err ro so ran вещь вроде е hat t becau si em ill ar ning g ant rying top ir om ve yes lf ev ryd ythank yo uv ry mu hag n ha v nic d ya!![/code] Al s ple e pi a et ti ti ad that t tim ne aw at shi ad na m le ar nig as go ole pe se bpai ten wi ti em yf io yu se mi sakte so err ro so ran вещь вроде шляпы т потому что си эм все еще ар ning g ant rying top ir om ve yes lf ev ryd ythank yo uv ry mu hag n ha v nic d ya!! Al sple e pi a et wi ti ad that t tim ne aw at shi ad na m le ar nig as gool e pe se bpai ten wi ti em yf io yu se e mi sakte so err ro so ran вещь вроде е шляпа t потому что si em все еще il ar ning g ant rying top ir om ve yes lf ev ryd y спасибо yo uv ry mu hag n ha v nic d ya!! Al sple e pi a et wi ti ad that t tim ne aw at shi ad na m le ar nig as gool e pe se bpai ten wi ti em yf io yu se e mi sakte so err ro so ran вещь вроде е шляпа t потому что si em все еще il ar ning g ant rying top ir om ve yes lf ev ryd y спасибо yo uv ry mu hag n ha v nic d ya!! Alspleepepiaetwitadthattimneawatshiadnamlearnigasgoolepesebpaitenwitemyfioyuseeemisaktesoerrrosoranthinglikethatbecauseimstillearningantryingtoimproveyeslfevrydythankyouvrymuhagnhavnicdya!.Alspleepepiaetwitadthattimneawatshiadnamlearnigasgoolepesebpaitenwitemyfioyuseeemisaktesoerrrosoranthinglikethatbecauseimstillearningantryingtoimproveyeslfevrydythankyouvrymuhagnhavnicdya!.Alspleepepiaetwitadthattimneawatshiadnamlearnigasgoolepesebpaitenwitemyfioyuseeemisaktesoerrrosoranthinglikethatbecauseimstillearningantryingtoimproveyeslfevrydythankyouvrymuhagnhavnicdya!.Alspleepepiaetwitadthattimneawatshiadnamlearnigasgoolepesebpaitenwitemyfioyuseeemisaktesoerrrosoranthinglikethatbecauseimstillearningantryingtoimproveyeslfevrydythankyouvrymuhagnhavnicdyathankyouverymuchagainhaveaniceday!:)))))).Hereismyviewsetcodesofar.:Iamusingdjangorestframeworklogic.:Thanksagain!:IAppreciateyourhelp!:Haveaniceday!:)))))).Hereismyviewsetcodesofar.:Iamusingdjangorestframeworklogic.:Thanksagain!: Яценюваш помоги!: Haveaniceday! Этот код определяет две модели: User и Post. В модели User есть поля для имени и электронной почты, а в модели Post есть поля для заголовка, тела, автора, созданного, обновленного, ярлыка, тегов, лайков, просмотров и комментариев. Код также определяет класс Meta для модели Post с атрибутом related_name.

Отношения модели в Django REST Framework

В Django REST Framework отношения моделей представлены набором полей в моделях, которые связаны друг с другом. Например, модель, представляющая пользователя, может иметь поля для его имени и адреса электронной почты. Если пользователь изменит свой адрес электронной почты, платформа также автоматически обновит поле имени.

Чтобы создать отношение модели, сначала необходимо создать в одной из моделей поле, представляющее отношение между двумя моделями. Имя этого поля будет таким же, как имя поля в другой модели. Например, если бы мы хотели создать отношения модели между нашими моделями пользователей и адресов электронной почты, мы бы создали поле с именем id_user в нашей модели пользователя и назвали бы его id_email в нашей модели адресов электронной почты.

Затем вам нужно создать связанное поле в другой вашей модели, которое представляет данные, которые будут храниться в этой связи. Это связанное поле должно иметь то же имя, что и поле в вашей первой модели, но с добавленным к нему символом подчеркивания (_). Например, если бы мы хотели сохранить идентификационный номер для каждого пользователя, мы бы создали поле id_user в нашей модели пользователя и назвали бы его id_id в нашей модели адреса электронной почты.

Наконец, вам нужно добавить метод ratio() в вашу первую модель, который возвращает список кортежей, представляющих все отношения между полями в вашей второй модели. Например, если бы мы хотели найти всех пользователей, у которых адрес электронной почты заканчивается на «test», мы бы использовали функцию ratio() следующим образом:

отношение защиты (я, другое): вернуть [ (id_user, id_email) для (id_user, id_email) в self._get_all ()]

Что такое REST-фреймворк

REST Framework — это библиотека для создания веб-сервисов RESTful в Django. Он предоставляет простой и согласованный способ создания веб-служб, которые могут использоваться другими приложениями.

Похожие посты: