django==3.2.4 djangorestframework==3.12.4
blog/serializer.py
from rest_framework import serializers
from .models import Blog
class BlogSerializer(serializers.ModelSerializer):
class Meta:
model = Blog
fields = '__all__'
blog/views.py
from rest_framework import generics
from .models import Blog
from .serializers import BlogSerializer
class BlogListCreateView(generics.ListCreateAPIView):
queryset = Blog.objects.all()
serializer_class = BlogSerializer
class BlogRetrieveUpdateDestroyView(generics.RetrieveUpdateDestroyAPIView):
queryset = Blog.objects.all()
serializer_class = BlogSerializer
blog/urls.py
router = DefaultRouter()
router.register(r'blogs', BlogListCreateView.as_view(), basename="blogs")
router.register(r'action/<int:pk>', BlogRetrieveUpdateDestroyView.as_view(), basename="action")
urlpatterns = [
path('', include(router.urls)),
]
when i use router it shows AttributeError: 'function' object has no attribute 'get_extra_actions' but when i use normal django urls path it run successfully
blog/urls.py
urlpatterns = [
path('blog/', BlogListCreateView.as_view(), name="blog"),
path('blog/<int:pk>', BlogRetrieveUpdateDestroyView.as_view(), name="action"),
]