Tengo una pequeña aplicación web y estoy tratando de desarrollar una API para ella. Tengo un problema con un modelo al que llamé Platform dentro de una aplicación a la que llamé UserPlatforms. El mismo error: AttributeError: type object 'UserPlatformList' has no attribute 'get_extra_actions'
modelos.py:
class Platform(models.Model): user = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='platform_owned', on_delete=models.CASCADE, default=10) PLATFORM_CHOICES = [platform_x, platform_y] platform_reference = models.CharField(max_length=10, choices=PLATFORM_CHOICES, default='platform_x') platform_variables = models.JSONField()api/vistas.py
from .serializers import PlatformSerializer from rest_framework import generics, permissions from userplatforms.models import Platform class UserPlatformList(generics.ListCreateAPIViewAPIView): queryset = Platform.objects.all() permisson_classes = [permissions.IsAuthenticatedOrReadOnly] serializer_class = PlatformSerializerapi/serializador.py
from rest_framework import serializers from userplatforms.models import Platform class PlatformSerializer(serializers.HyperlinkedModelSerializer): class Meta: model = Platform fields = '__all__'api/urls.py
from django.urls import path, include from . import views from rest_framework import routers router = routers.DefaultRouter() router.register(r'userplatforms/', views.UserPlatformList, 'userplatforms') router.register(r'userfiles/', views.UserFileList, "userfiles") router.register(r'users/', views.UserList, "user") urlpatterns = [ path("^", include(router.urls)) ]cambie class PlatformSerializer(serializers.HyperlinkedModelSerializer): a class PlatformSerializer(serializers.ModelSerializer):
No puede agregar vistas genéricas en enrutadores
Así que elimina esta línea
router.register(r'userplatforms/', views.UserPlatformList, 'userplatforms') y actualizar urlpatterns a
urlpatterns = [ path('userplatforms/', views.UserPlatformList, name='userplatforms'), path("^", include(router.urls)) ]