@marselabdullin

Почему django не передает id во vue через rest?

Ряд функций завязан на id, но обнаружил, что это поле постоянно undefined во vue. Не знаю передается ли он в ответе json через апи или нет? И нужно ли указывать это поле в сериалайзере?
в
Вот функция которая получает объекты, но айди в нее джанго не передает
app.vue:
async getEvents(){
        var response = await fetch('http://127.0.0.1:8000/rest/');
        this.events = await response.json()
        alert(this.events[0].id)
      },

Здесь же я передаю дату сериалайзера, в котором нет поля айди
views.py(api):
def get(self, request):
        events = Event.objects.all()
        serializer = EventSerializer(events, many=True)
        return Response(serializer.data)

Поля сериалайзера
serializers.py:
class EventSerializer(serializers.Serializer):
    title = serializers.CharField()
    content = serializers.CharField()
    event_date = serializers.DateTimeField()
    email = serializers.EmailField()
  • Вопрос задан
  • 178 просмотров
Решения вопроса 1
@Nuchimik
Конечно нужно указать id в сериализаторе
Также, у вас есть модель, вы можете использовать serializers.ModelSerializer вот так
class EventSerializer(serializers.ModelSerializer):
    """
    Видимо сериализатор мероприятия
    """
    class Meta:
        model = Event
        fields = ('id', 'title', 'content', 'event_date', 'email', )

И во views.py не писать свой get-метод, а наследовать класс от ListAPIView
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Viji
@Viji
Junior DevOps Engineer
А если посмотреть через Google Dev Tools?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы