Добрый день! :)
Моя задача - когда я буду делать запрос к api get_pages получить не только страницы, но и привязанные к ним текста. (я знаю что там нужно фильтровать по "texts_of_page", но мне бы хотя бы научится просто привязывать)
Делал по документации так, но поле texts не отображается
models.py
from django.db import models
from django.core.validators import FileExtensionValidator
# Create your models here.
class Page(models.Model):
class Meta:
db_table = "pages"
title = models.CharField(max_length=200, default="Page with media")
texts = ""
def __str__(self):
return self.title + " (%s)" % str(self.id)
class Text(models.Model):
class Meta:
db_table = "texts"
text = models.TextField()
counter_views = models.IntegerField(default=0, editable=False)
texts_of_page = models.ForeignKey(Page, on_delete=models.CASCADE)
created_at = models.DateTimeField(auto_now_add=True)
serializers.py
from rest_framework import serializers
from main_page.models import Page, Text
class TextsSerializer(serializers.ModelSerializer):
class Meta:
model = Text
fields = '__all__'
class PagesSerializer(serializers.ModelSerializer):
texts = TextsSerializer(many=True, read_only=True)
class Meta:
model = Page
fields = ('id', 'title', 'texts',)
views.py
from django.shortcuts import render_to_response
from main_page.models import Page, Text, Audio, Video
from rest_framework import generics
from .serializers import PagesSerializer, TextsSerializer
class ListPagesView(generics.ListAPIView):
queryset = Page.objects.all()
serializer_class = PagesSerializer
class ListTextsView(generics.ListAPIView):
queryset = Text.objects.all()
serializer_class = TextsSerializer
urls.py
from django.urls import path, re_path, include
urlpatterns = [
re_path('api/(?P<version>(v1|v2))/get_pages', include('main_page.views')[0].ListPagesView.as_view()),
re_path('api/(?P<version>(v1|v2))/get_texts', include('main_page.views')[0].ListTextsView.as_view()),
]