#python #django #django-rest-framework
#python #django #django-rest-framework
Вопрос:
поле идентификатора и поле имени не отображаются в результате.
в models.py:
class Group(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=50)
admin = models.ForeignKey(User, on_delete=models.CASCADE)
member = models.ManyToManyField(User, related_name='groups_user')
def __str__(self):
return self.name
в serializers.py:
class SimpleUserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ('id','first_name', 'last_name')
class GroupSerializer(serializers.Serializer):
admin = SimpleUserSerializer()
class Meta:
model = Group
fields = ('id','name','admin')
views.py:
@api_view(['GET'])
@permission_classes((IsAuthenticated,))
def getSomeGroup(request):
allGroup = Group.objects.all().count()
randomGroupId = random.sample(range(allGroup), 3)
randomGroup = Group.objects.filter(id__in=randomGroupId)
serializer = GroupSerializer(randomGroup, many=True)
#print(serializer)
return Response(serializer.data)
результат выглядит следующим образом:
[{«admin»:{«id»:1,»first_name»:»asif»,»last_name»:»»}},{«admin»:{«id»:3,»first_name»:»Test2″,»last_name»:»lastname»}},{«admin»:{«id»:3, «first_name»:»Test2″,»last_name»:»lastname»}}]
почему не отображаются поля id и name?
Ответ №1:
class SimpleUserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = '__all__'
Сначала попробуйте получить доступ ко всем администраторам
@api_view(['GET'])
@permission_classes(IsAuthenticated)
def getSomeGroup(request):
randomGroup = Group.objects.all()
serializer = GroupSerializer(randomGroup, many=True)
return Response(serializer.data)
Если это работает, может возникнуть проблема в этих двух строках
Проблема может быть в этих двух строках
allGroup = Group.objects.all().count()
randomGroupId = random.sample(range(allGroup), 3)
Комментарии:
1. попробуйте напечатать randomGroup в terminal / cmd, и если вывод не приходит, возникает проблема в get или database.
Ответ №2:
Изменить serializers.py:
class GroupSerializer(serializers.ModelSerializer):