Я создаю новый пользователь в Django, но когда я пытаюсь добавить пользователь с существующей электронной почтой я получаю 400 статуса иRestangular с Джанго рамкой отдыха и статусом 400
{
"email": ["This field must be unique."]
}
И получил это в консоли: Я использую этот конфиг для углового и Джанго
app.config(['$httpProvider', function ($httpProvider) {
$httpProvider.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
}]);
app.config(function ($httpProvider) {
$httpProvider.defaults.xsrfCookieName = 'csrftoken';
$httpProvider.defaults.xsrfHeaderName = 'X-CSRFToken';
});
Это, как я пытаюсь справиться с этой ошибкой на POST
var users = Restangular.all('users');
users.post({
email: $scope.email,
first_name: $scope.firstname,
last_name: $scope.lastname,
phone: $scope.phone,
password: $scope.password
}).then(function(response){
console.log(response);
alert("done");
},function(response) {
console.log("Error with status code", response.status);
});
Версии:
Django==1.8.4
djangorestframework==3.2.4
"angular": "1.4.7",
"restangular": "1.5.1"
Любые идеи? UPD Модели сериализатор:
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = PUser
def create(self, validated_data):
user = PUser(
email=validated_data['email'],
first_name=validated_data['first_name'],
last_name=validated_data['last_name'],
phone=validated_data['phone']
)
user.set_password(validated_data['password'])
user.save()
return user
PUSER модель копия Django AbstractUser, но без имени пользователя и адреса электронной почты не требуется, и уникальный
Пожалуйста, разместите свой сериализатор. –
Вы хотите обновить существующего пользователя? «POST» предназначен для создания, а не для обновления. Ошибка - это ограничение базы данных в определении модели Django 'User'. У вас не может быть 2 пользователей с тем же адресом электронной почты. –
Обновлено сообщение с моделями. Я создаю новых пользователей, и все работает нормально, но мне нужно обрабатывать ошибки, когда электронная почта в уже используемом – Painhardcore