def save(self, *args, **kwargs): if not self.pk: existing_codes = Affiliate.objects.values_list('unique_code', flat=True) self.unique_code = generate_random_code( initials=self.user.first_name.lower()[:3], n=5, existing_codes=existing_codes) super(Affiliate, self).save(*args, **kwargs)
def register_view(request): if request.user.is_authenticated: return redirect(reverse(dashboard_view)) if request.method == 'GET': return render(request, 'account/register.html') elif request.method == 'POST': data = request.POST email = data.get('email') if User.objects.filter(email=email).exists(): return JsonResponse( {'error': "User with this email already exists."}, status=500) first_name = data.get('first_name') last_name = data.get('last_name') password = data.get('password') phone_no = data.get('phone_no') username = generate_random_code( initials=first_name.lower()[:3], n=5, alphabets=False, existing_codes=User.objects.values_list('username', flat=True)) # create user try: user = User.objects.create(username=username, first_name=first_name, last_name=last_name, email=email, is_active=False) user.set_password(password) user.save() except Exception as e: return JsonResponse({'error': str(e)}, status=500) # create affiliate account Affiliate.objects.create(user=user, phone_no=phone_no) # send account verification link current_site = get_current_site(request) message = render_to_string( 'account/account_activation_email.html', { 'user': user, 'domain': current_site.domain, 'uid': urlsafe_base64_encode(force_bytes(user.pk)), 'token': account_activation_token.make_token(user), }) send_account_verification_email(user.email, message) return JsonResponse({'detail': 'done'})
def get_notification_category_image_upload_path(instance, filename): return "notification-category-images/{}/{}-{}".format( instance.id, generate_random_code(n=5), filename.split('/')[-1])
def get_scout_task_category_image_upload_path(instance, filename): return "scout-task-categories/{}/{}-{}".format(instance.id, generate_random_code(n=5), filename.split('/')[-1])
def get_scout_document_thumbnail_upload_path(instance, filename): return "scouts/{}/documents/{}-{}/thumbnail/{}-{}".format(instance.scout.id, instance.type, instance.id, generate_random_code(n=5), filename.split('/')[-1])
def get_picture_upload_path(instance, filename): return "scouts/{}/pictures/{}-{}".format(instance.scout.id, generate_random_code(n=5), filename.split('/')[-1])
def get_topic_image_upload_path(instance, filename): return "faqs/topics/{}/{}-{}".format(instance.slug, generate_random_code(n=5), filename.split('/')[-1])
def get_thumbnail_upload_path(instance, filename): return "affiliates/{}/thumbnail/{}-{}".format(instance.affiliate.id, generate_random_code(n=5), filename.split('/')[-1])
def get_property_on_boarding_house_picture_upload_path(instance, filename): return "scouts/tasks/{}/PropertyOnBoardingHousePhoto/{}/pictures/{}-{}".format( instance.property_on_boarding_house_photo_sub_task.task.id, instance.property_on_boarding_house_photo_sub_task.id, generate_random_code(n=5), filename.split('/')[-1])