Итак, это модель, которую я хочу сериализовать:
from django.db import models
class Concurs(models.Model):
name = models.CharField(max_length=50)
date = models.DateTimeField(auto_now_add=True)
bio = models.TextField(max_length=5000, blank=True, null=True)
participants = models.PositiveIntegerField(blank=True, null=True)
medals = models.PositiveIntegerField(blank=True, null=True)
done = models.BooleanField()
link = models.CharField(max_length=1000, blank=True, null=True)
class Meta:
verbose_name = "Concurs"
ordering = ['-date']
def __str__(self):
return self.name
Это процесс сериализации:
from rest_framework import serializers
from .models import Concurs
class ConcursSerializer(serializers.ModelSerializer):
class Meta:
model = "Concurs"
fields = "__all__"
Это views.py:
from django.shortcuts import render
from .models import Concurs
from .serializers import ConcursSerializer
from rest_framework import generics
class ConcursList(generics.ListCreateAPIView):
queryset = Concurs.objects.all()
serializer_class = ConcursSerializer
class ConcursDetail(generics.RetrieveUpdateDestroyAPIView):
queryset = Concurs.objects.all()
serializer_class = ConcursSerializer
Ошибка, которую я получаю всякий раз, когда я перехожу к списку или подробному представлению:
Объект 'str' не имеет атрибута '_meta'
Я думаю, что допустил ошибку в процессе сериализации, я новичок в RESTFramework, поэтому я действительно не знаю.
from rest_framework import serializers
from .models import Concurs
class ConcursSerializer(serializers.ModelSerializer):
class Meta:
model = Concurs
fields = "__all__"
Вы должны использовать ссылку на класс Concurs вместо имени строки "Concurs"
пропустите эти "" в строке: model = "Concurs", напишите просто: model = Concurs