Сохранение экземпляра модели перед отправкой ответа в Django
Есть ли способ добавить запись в БД ДО отправки ответа? Я только что узнал о Django Signals, поэтому предполагаю, что это может быть кандидатом.
Причина, по которой я спрашиваю об этом, заключается в проблеме, с которой я столкнулся, используя knox + drfpasswordless.
В этом сниппете возвращается токен аутентификации. Однако токен здесь не сохраняется.
Когда я вызываю AuthToken.create(), это сохраняет токен в моей базе данных, но вызывает .is_valid()
возврат False, потому что мой сериализатор (ModelSerializer) основан на AuthToken, у которого дайджест имеет первичный ключ.
class AuthTokenResponseSerializer(serializers.ModelSerializer):
user_id = serializers.PrimaryKeyRelatedField(
queryset=User.objects.all(),
)
class Meta:
model = AuthToken
fields = ["digest", "token_key", "user_id", "created", "expiry"]
Обходной путь, о котором я думал, заключается в создании экземпляра AuthToken
и сохранении его непосредственно перед отправкой ответа. Если это невозможно, я рассматривал возможность форка проекта и изменения кода