У меня есть вид аутентификации Twitter, который не использует набор настроек, поэтому аутентификация может быть обработана на бэкэнде. Представление принимает oauth_token
и использует Twython для получения профиля и создания модели Twitter.
В настоящее время я просто возвращаю статус 201
в случае успеха, но чтобы устранить необходимость в другом запросе после создания, яхотел бы вернуть созданную модель. У меня уже есть TwitterSerializer
, который определяет fields
, который я хочу включить, поэтому я хотел бы иметь возможность использовать его, если это возможно.
TwitterSerializer
class TwitterSerializer(serializers.ModelSerializer):
class Meta:
model = Twitter
fields = (
"id",
"twitter_user_id",
"screen_name",
"display_name",
"profile_image_url",
)
Когда я пытаюсь использовать это, я получаю ошибку, что Instance of TwitterSerializer is not JSON serializable
.
serialized = TwitterSerializer(instance=twitter)
return JsonResponse({ "created": serialized })
Я могу вернуть сериализованный экземпляр модели, используя serializers.serialize()
serialized = serializers.serialize('json', [twitter, ])
serialized = serialized[0]
return JsonResponse({ "created": serialized })
Я мог бы передать fields
kwarg serialize()
, но я не хочу повторяться, если не буду этого делать. Так можно ли будет повторно использовать мой TwitterSerializer
в этом случае? У меня проблемы с поиском прямого ответа, так как в большинстве документов предполагается, что вы будете использовать ViewSet при использовании сериализатора по понятным причинам, и это похоже на крайний случай. Я также открыт для предложений по рефакторингу этого подхода!