У меня две модели говорят А и Б.
как выглядят модели
class A(models.Model):
name = models.CharField(max_length=100)
description = models.CharField(max_length=1000)
slug = models.CharField(max_length=100)
class B(models.Model):
name = models.CharField(max_length=100)
description = models.CharField(max_length=1000)
slug = models.CharField(max_length=100)
A = models.foreignkey(A, models.SET_NULL, blank=true)
сериализаторы
Class ASerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = A
fields = '__all__'
lookup_field = 'slug'
extra_kwargs = {'url': {'lookup_field': 'slug'}}
Class BSerializer(serializers.ModelSerializer):
class Meta:
model = B
fields = '__all__'
вид модели
from rest_framework import viewsets, permissions
from rest_framework.response import Response
from rest_framework.decorators import action
from .models import (A, B)
from .serializers import (ASerializer, BSerializer)
Class AViewSet(viewsets.ModelViewSet):
queryset = A.objects.all()
serializer_class = ASerializer
permission_classes = (permissions.DjangoModelPermissionsOrAnonReadOnly, )
lookup_field = 'slug'
def retrieve(self, request, *args, **kwargs):
instance = self.get_object()
bs = B.objects.filter(A=instance.id)
serializer = BSerializer(bs, many=True)
return Response(serializer.data)
Я хочу получить доступ к URL-адресу, например
Url: ^A/<slug>/B/slug>/$
Я просмотрел документацию Django Restframework и обнаружил, что мы можем добавить настраиваемый URL-адрес, например (drf-custom-rounting. Я не понимаю, как создать шаблон URL-адреса доступа, указанный выше.
Как так настроить?
РЕДАКТИРОВАТЬ: Я решил свою проблему. Я нашел решение проблемы аналогичного типа здесь < / а>. Спасибо за ваш ответ.