У меня странная ошибка при производстве, связанная с суррогатными парами utf-8 и . Скопируйте код, чтобы воспроизвести проблему (для простоты я представляю все в одном файле и опускаю некоторые ненужные детали)
class User(models.Model):
username = models.CharField('Username', max_length=255,)
class Meta:
app_label = 'users'
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = models.User
fields = ['username']
class UserViewSet(viewsets.ModelViewSet):
queryset = models.User.objects.all()
serializer_class = UserSerializer
и тесты:
def test_create_user_and_set_password(django_app):
response = django_app.post_json(
reverse('users-list'),
{
'username': '\ud83d',
}
)
assert response.status_code == 201
assert models.User.objects.count() == 1
в результате выполнения теста Iполучить сообщение об ошибке (так же, как в производственном процессе):
def execute(self, query, params=None):
if params is None:
return Database.Cursor.execute(self, query)
query = self.convert_query(query)
> return Database.Cursor.execute(self, query, params)
E UnicodeEncodeError: 'utf-8' codec can't encode character '\ud83d' in position 0: surrogates not allowed
Как мне решить такие проблемы? Мои знания о кодировании ограничены, но из здравого смысла очевидно, что я не первый, кто обнаруживает такую проблему.