def post(self, request, pk=None): if not pk: return redirect(reverse("dashboard")) client = Usuario.objects.get(pk=pk) form = ExtraInfoForm(request.POST, instance=client) if form.is_valid(): state = State.objects.get_or_create(uf=request.POST.get('state'), cod_ibge=request.POST.get('cod_ibge'))[0] city = City.objects.get_or_create(name=request.POST.get('city'), latitude=request.POST.get('latitude'),longitude=request.POST.get('longitude'), state=state, cod_ibge=state.cod_ibge)[0] neighborhood = Neighborhood.objects.get_or_create(description=request.POST.get('neighborhood'), city=city)[0] place = Place.objects.get_or_create(zip_code=request.POST.get('zip_code'), city=city, latitude=city.latitude, longitude=city.longitude, neighborhood=neighborhood)[0] address = Address() address.street = request.POST.get('street') address.number = request.POST.get('number') address.complement = request.POST.get('complement') address.reference_point = request.POST.get('reference_point') address.place = place address.neighborhood = neighborhood address.city = city address.state = state address.latitude = city.latitude address.longitude = city.longitude address.save() # UPDATING CLIENT client = form.save(commit=False) client.address = address client.save() # ACTIVATING USER user = client.user user.is_active = True user.save() # ALLAUTH EMAIL try: auth_email = EmailAddress.objects.get(user=client.user, email=client.email) except: auth_email = EmailAddress() auth_email.user = client.user auth_email.email = client.email auth_email.save() # SENDING EMAIL CONFIRMATION auth_email.send_confirmation() response = { 'status': 'success', 'message':'Usuário criado com sucesso', 'redirect':reverse("account_login") } return JsonResponse(response, status=200) return JsonResponse({'status': 'form_error', 'message':'Favor preencher todos os campos'}, status=400)
def create(self, request): EmailAddress.objects.create(user=request['user'], email=request['email']) self.email_address = EmailAddress.objects.get(email=request['email']) print(signing.dumps( obj=self.email_address.pk, salt=app_settings.SALT)) EmailAddress.send_confirmation(self.email_address) return request
def save(self, commit=True): user = super().save(commit) user_email = EmailAddress(user=user, email=self.cleaned_data['email']) user_email.send_confirmation() user_email.save() return user