Encontré el error que no puedo resolver al navegar hacia mi página de API de rest_framework.
El error completo (Error de Django) es:
Got AttributeError when attempting to get a value for field `process` on serializer `ResultSerializer`. The serializer field might be named incorrectly and not match any attribute or key on the `Shop` instance. Original exception text was: 'Shop' object has no attribute 'process'.Parece que el serializador intenta obtener un valor en el campo dado en otro serializador llamado ResultSerializer pero no pudo encontrarlo. He comprobado que todos los campos son correctos.
Aquí está mi models.py
from django.db import models class ResultSet(models.Model): process = models.CharField(max_length=10) subprocess = models.CharField(max_length=10) class Shop(models.Model): Establishment = models.CharField(max_length=100) Address = models.CharField(max_length=100) Suburb = models.CharField(max_length=50) Postcode = models.CharField(max_length=10) State = models.CharField(max_length=5) Establishment_Type = models.CharField(max_length=20) latitude = models.DecimalField(decimal_places=6, max_digits=12) longtitude = models.DecimalField(decimal_places=6, max_digits=12) class Meta: ordering = ('Establishment',) class EntirelyResult(models.Model): Result = models.ManyToManyField(Shop, related_name='fullresult') Status = models.ManyToManyField(ResultSet, related_name='status')Aquí está mi serializers.py
from rest_framework.serializers import ModelSerializer from .models import Shop, ResultSet, EntirelyResult class ResultSerializer(ModelSerializer): class Meta: model = ResultSet fields = ('process', 'subprocess') class ShopSerializer(ModelSerializer): class Meta: model = Shop fields = ('__all__') class ShopDetailSerializer(ModelSerializer): Result = ResultSerializer(many=True, read_only=True) Status = ShopSerializer(many=True, read_only=True) class Meta: model = EntirelyResult fields = ('Result', 'Status')Aquí está mi vista.py
from rest_framework.generics import ListAPIView from .models import EntirelyResult from .serializers import ShopDetailSerializer class ShopDetailAPIView(ListAPIView): queryset = EntirelyResult.objects.all() serializer_class = ShopDetailSerializer¿Hubo algo que me perdí para hacer el resto_framework correctamente?
Tienes un error tipográfico en tu serializador ShopDetailSerializer debería ser:
class ShopDetailSerializer(ModelSerializer): Result = ShopSerializer(many=True, read_only=True) Status = ResultSerializer(many=True, read_only=True) Editar: EntirelyResult asigna el campo de Result a Shop y el campo de Status a ResultSet mientras que el serializador inicialmente asignó el campo de Result a ResultSet y el campo de Status a Shop