Je cherche un bon exemple de la manière de réaliser ce qui suit :
Je voudrais utiliser get_or_create pour vérifier si un objet existe déjà dans ma base de données. S'il n'existe pas, il sera créé. S'il existe, je ne créerai pas le nouvel objet, mais j'aurai besoin de générer une erreur de formulaire pour informer l'utilisateur qu'il doit entrer des données différentes (par exemple, un nom d'utilisateur différent).
La vue contient :
p, created = Person.objects.get_or_create(
email = registration_form.cleaned_data['email'],
defaults = {
'creationDate': datetime.datetime.now(),
'dateOfBirth': datetime.date(1970,1,1)
})
Ainsi, 'p' contiendra la personne existante si elle existe, ou la nouvelle personne si elle n'existe pas. J'aimerais agir sur la valeur booléenne de 'created' afin d'ignorer l'enregistrement de la personne, de réafficher le formulaire d'enregistrement et de générer une erreur de validation de formulaire appropriée.
L'alternative que j'envisage est de faire une vérification dans une méthode de validation de formulaire personnalisée pour voir si une personne existe avec les données dans le champ 'email' fourni, et de générer simplement une erreur de validation.