Я пытаюсь сериализовать модель с внешним ключом «Пользователь».Соответствующий фрагмент представления:
data = JSONParser().parse(request)
serializer = SiteSerializer(data=data)
if serializer.is_valid():
userid = data['supervisor']
user = User.objects.get(id=userid).__dict__ ## tried case I
user = User.objects.get(id=userid) ## tried case II
serializer.save(supervisor=user)
return JsonResponse(serializer.data, status=201)
Сериализатор имеет вид:
class SiteSerializer(serializers.ModelSerializer):
supervisor = serializers.RelatedField(source='User', read_only=True)
class Meta:
model = Site
fields = ('sitename', 'start_date', 'supervisor')
Модель:
class Site(models.Model):
sitename=models.CharField(max_length=255)
start_date=models.DateTimeField
supervisor=models.ForeignKey(User,on_delete=models.PROTECT)
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
def __str__(self):
return "{}".format(self.sitename)
Когда я передаю объект супервизора, он говорит, чтоОбъект типа «Тип» не сериализуем, и когда я передаю supervisor в качестве словаря, он говорит, что переменная dict supervisor должна быть экземпляром User.Как мне разобраться в этом и продолжить ??