Hi,
I can’t explain why because I didnt override clean function but when I post a form.
the is_valid() function return true when it’s false raising ValueError : The EntreeEau could not be created because the data didn’t validate.
my model :
class EntreeEau(Marker):
identification = models.CharField(max_length=30, blank=False, unique=True) # La validation ne sera pas la meme que Commerciale
type = models.IntegerField(default=EE_Type.RESIDENTIEL, choices=EE_Type)
related_adresse = models.ForeignKey(CivicAdresse, on_delete=models.SET_NULL, null=True, blank=True)
dimension = models.IntegerField(default=EE_Dimension._3_4po, choices=EE_Dimension)
mat_type = models.IntegerField(default=EE_Mat_type.CUIVRE, choices=EE_Mat_type)
def label(self):
return self.type.label
def __str__(self):
return self.identification
def __unicode__(self):
return self.identification
class Meta:
verbose_name = "Entree d'eau"
verbose_name_plural = "Entre d'eau"
my form:
class EntreEauResidentielForm(forms.ModelForm):
class Meta:
model = EntreeEau
fields = [
'latitude',
'longitude',
'note',
'identification',
'related_adresse',
'dimension',
'mat_type'
]
def __init__(self,loggedin_user, *args, **kwargs):
super(EntreEauResidentielForm, self).__init__(*args, **kwargs)
self.fields['related_adresse'].queryset = CivicAdresse.objects.filter(locality = loggedin_user.ville.id )
my view :
class AddNewEER(View):
def post(self, request, *args, **kwargs):
form = EntreEauResidentielForm(request.user,request.POST, prefix='EER')
if form.is_valid:
instance = form.save(commit=False)
instance.type = EE_Type.RESIDENTIEL
instance.related_client = request.user.ville
instance.save()
response = {}
response['success']= True
response['message'] = "L'entrée d'eau est ajouté avec succès."
return JsonResponse(response, safe=False)
else:
return JsonResponse({'success': False, 'message': form.errors})
if the data is truly valid, the models object get created.
I tried with already existing identification field. This field is unique.
any clue ?