Django, rest_framework - 'User' object is not iterable
у меня возникла проблема с получением данных из промежуточной таблицы, у которой одно поле было получено из django.contrib.auth.models, а для второго столбца я использовал свою базу данных.
models.py
from django.db import models
from django.contrib.auth.models import User
class UsersOfTown(models.Model):
UsersID = models.ForeignKey(User, on_delete=models.CASCADE)
TownsID = models.ForeignKey('towns.Town', on_delete=models.CASCADE) # моя база данных
Если зайти в django administration, то можно увидеть, что она создается (жаль что вместо id пользователя я вижу никнейм)
Также я создал сериализацию для своей бд:
serializers.py
from django.contrib.auth.models import User
from rest_framework import serializers
from main.models import UsersOfTown
class UsersOfTownSerializer(serializers.ModelSerializer):
UsersID = serializers.RelatedField(queryset=User.objects.all(), many=True)
TownsID = serializers.RelatedField(queryset=Town.objects.all(), many=True)
class Meta:
model = UsersOfTown
fields = "__all__"
И views.py файл:
@api_view(['GET', 'POST'])
def users_towns_list(request, format=None):
if request.method == 'GET':
town_users = UsersOfTown.objects.all()
serializer = UsersOfTownSerializer(town_users, many=True)
return Response(serializer.data)
elif request.method == 'POST':
serializer = UsersOfTownSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Который вызывается, если я перехожу по адресу http://127.0.0.1:8000/api/user_list
Но в качестве результата я получаю ошибку:
Мне понятно, что я както не так обращаюсь к БД Users, а точней к ее дескриптору. Так как если я вместо Users буду использовать свою БД, то все будет работать. Ума не приложу, что я делаю не так. Как мне правильно обратиться к полю UsersID, которое связанно с БД Users?