Hii all,
I hv been struck in last 4 days please fix this error , i'm new to django

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/c753a468-0b45-4266-9094-213719986069n%40googlegroups.com.
from django.db import models
from django.urls import reverse
from django.contrib.auth.models import User

from PIL import Image
# from package.models import Package
# from .models import BabyInfo,Profile
# from user_profile.models import BabyInfo
# Create your models here.
class UserOTP(models.Model):
	user = models.ForeignKey(User, on_delete = models.CASCADE)
	time_st = models.DateTimeField(auto_now = True)
	otp = models.SmallIntegerField()

def upload_profile_to(instance,filename):
	return f'profile_picture/{instance}/{filename}'

class BabyInfo(models.Model):
	MALE = 'male'
	FEMALE = 'female'
	BOTH = 'both'
	GENDER = (
        ('MALE','Male'),
        ('FEMALE','Female'),
        ('BOTH','both'),
    )

	Y='yes'
	N='no'
	CHOICES = (
        ('Y', 'Yes'),
        ('N', 'No'),
    )
	born_status = models.CharField(max_length=1, choices=CHOICES)
	gender = models.CharField(max_length=10, choices=GENDER, verbose_name="gender")
	story_name = models.CharField(max_length=100)
	baby_date = models.DateField()
	profile_pic = models.ImageField(upload_to = upload_profile_to, default = 'defaults/profile_pic.jpg')
	# package=models.ForeignKey(Package,on_delete=models.CASCADE)
	created = models.DateTimeField(verbose_name=('Created'),auto_now_add=True)
	updated = models.DateTimeField(verbose_name=('Updated'),auto_now=True)

	class Meta:
		verbose_name = ('BabyInfo')
		verbose_name_plural = ('BabyInfos')
		ordering = ['-created']

	def __str__(self):
		return self.story_name


class Profile(models.Model):
	user = models.OneToOneField(User, on_delete = models.CASCADE,)
	profile_pic = models.ImageField(upload_to = upload_profile_to, null=True)
	# cover_image = models.ImageField(upload_to = 'upload_cover_to', null = True, default= 'defaults/cover_image.jpg')
	name=models.CharField(max_length=250)
	mail_id=models.EmailField()
	relationship=models.CharField(max_length=100)
	phone_no=models.IntegerField()
	is_lead_user=models.BooleanField(('Is LEAD USER'),help_text='button to toggle employee lead and aditional',default=False)
	babyinfo=models.ForeignKey(BabyInfo,on_delete=models.CASCADE,null=True)
	created = models.DateTimeField(verbose_name=('Created'),auto_now_add=True,null=True)
	updated = models.DateTimeField(verbose_name=('Updated'),auto_now=True,null=True)

	class Meta:
		verbose_name = ('Profile')
		verbose_name_plural = ('Profiles')
		ordering = ['-created']

	def __str__(self):
		return self.mail_id

	def save(self, *args, **kwargs):
		super().save(*args, **kwargs)

		img = Image.open(self.profile_pic.path)
		if img.height > 300 or img.width > 300:
			output_size = (300, 300)
			img.thumbnail(output_size)
			img.save(self.profile_pic.path)

		img2 = Image.open(self.cover_image.path)
		if img2.height > 500 or img2.width > 500:
			output_size = (500, 500)
			img2.thumbnail(output_size)
			img2.save(self.cover_image.path)
from django.shortcuts import render
from django.shortcuts import redirect
from django.urls import reverse
from django.shortcuts import get_object_or_404
from django.http import HttpResponseRedirect, HttpResponse
from django import forms
# Create your views here.
# from .forms import Profile
from userapp.models import BabyInfo,Profile,UserOTP
from userapp.forms import BabyForm1,BabyForm2


from django.contrib import messages
import random
from .forms import SignUpForm
from django.contrib.auth.models import User
from django.core.mail import send_mail
from django.conf import settings
from django.http import HttpResponse, Http404, JsonResponse
from django.contrib.auth.forms import AuthenticationForm, PasswordChangeForm
from django.contrib.auth import authenticate, login
from django.contrib.auth.decorators import login_required
from django.views.decorators.csrf import csrf_exempt
from django.core import serializers
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger


def page(request):
    return render(request,'userapp_temp/landing_page.html')

def home(request):
    return render(request,'userapp_temp/home.html',)

# def index(request):
#     return render(request, 'userapp_temp/index.html', {'title':'index'})

# def login(request):
#     return render(request,'userapp_temp/login.html')
#
# def register(request):
#     return render(request,'userapp_temp/signup.html')

def profile(request):
    return render(request,'userapp_temp/profile.html')


#########################(BABY_PROFILE)#########################################
def detail(request):
    if request.method == 'POST':
        baby_form1 = BabyForm1(data=request.POST)
        baby_form2 = BabyForm2(data=request.POST)

        if baby_form1.is_valid() and baby_form2.is_valid():
            baby1 = baby_form1.save(commit=False)
            baby1.save()
            print(baby1)

            baby2 = baby_form2.save(commit=False)
            baby2.baby1 = baby1
            baby2.save()
            print(baby2)

    baby_form1 = BabyForm1()
    baby_form2 = BabyForm2()
    context = {'baby_form1':baby_form1, 'baby_form2':baby_form2,}
    return render(request,'userapp_temp/profile.html', context)



    # registered = False
    #
    #
    #
    # if request.method == "POST":
    #     baby_form1 = BabyForm1(data=request.POST)
    #
    #
    #     if baby_form1.is_valid():
    #         baby1 = baby_form1.save(commit=True)
    #         baby_id = baby1.id
    #
    #         print(baby1.id)
    #
    #
    #         # babyinfo = BabyInfo.objects.get(pk=103)
    #         # print(babyinfo)
    #         baby_form2 = BabyForm2(data=request.POST)
    #         print(baby_form2)
    #         # baby2 = baby_form2.save()
    #     if baby_form2.is_valid():
    #         print("form2 start")
    #         baby2 = baby_form2.save(commit=False)
    #         baby2.babyinfo_id=baby_id
    #         baby2.user_id=8
    #         baby2.save()
    #         # baby2.name = baby1
    #
    #
    #         registered =True
    #
    #     else:
    #         print(baby_form1.errors,baby_form2.errors)
    #
    #
    # else:
    #     return render(request,'userapp_temp/landing_page.html')
##################################

def signup(request):
	if request.method == 'POST':
		get_otp = request.POST.get('otp') #213243 #None

		if get_otp:
			get_usr = request.POST.get('usr')
			usr = User.objects.get(username=get_usr)
			if int(get_otp) == UserOTP.objects.filter(user = usr).last().otp:
				usr.is_active = True
				usr.save()
				messages.success(request, f'Account is Created For {usr.username}')
				return redirect('userapp:login')
			else:
				messages.warning(request, f'You Entered a Wrong OTP')
				return render(request, 'userapp_temp/signup.html', {'otp': True, 'usr': usr})

		form = SignUpForm(request.POST)
		if form.is_valid():
			form.save()
			username = form.cleaned_data.get('username')
			name = form.cleaned_data.get('name').split(' ')

			usr = User.objects.get(username=username)
			usr.email = username
			usr.first_name = name[0]
			if len(name) > 1:
				usr.last_name = name[1]
			usr.is_active = False
			usr.save()
			usr_otp = random.randint(100000, 999999)
			UserOTP.objects.create(user = usr, otp = usr_otp)

			mess = f"Hello {usr.first_name},\nYour OTP is {usr_otp}\nThanks!"

			send_mail(
				"Welcome to KuttyStory - Verify Your Email",
				mess,
				settings.EMAIL_HOST_USER,
				[usr.email],
				fail_silently = False
				)

			return render(request, 'userapp_temp/signup.html', {'otp': True, 'usr': usr})


	else:
		form = SignUpForm()

	return render(request, 'userapp_temp/signup.html', {'form':form})


def resend_otp(request):
	if request.method == "GET":
		get_usr = request.GET['usr']
		if User.objects.filter(username = get_usr).exists() and not User.objects.get(username = get_usr).is_active:
			usr = User.objects.get(username=get_usr)
			usr_otp = random.randint(100000, 999999)
			UserOTP.objects.create(user = usr, otp = usr_otp)
			mess = f"Hello {usr.first_name},\nYour OTP is {usr_otp}\nThanks!"

			send_mail(
				"Welcome to KuttyStory - Verify Your Email",
				mess,
				settings.EMAIL_HOST_USER,
				[usr.email],
				fail_silently = False
				)
			return HttpResponse("Resend")

	return HttpResponse("Can't Send ")


def login_view(request):
	if request.user.is_authenticated:
		return redirect('userapp:login')
	if request.method == 'POST':
		get_otp = request.POST.get('otp') #213243 #None

		if get_otp:
			get_usr = request.POST.get('usr')
			usr = User.objects.get(username=get_usr)
			if int(get_otp) == UserOTP.objects.filter(user = usr).last().otp:
				usr.is_active = True
				usr.save()
				login(request, usr)
				return redirect('userapp:login')
			else:
				messages.warning(request, f'You Entered a Wrong OTP')
				return render(request, 'userapp_temp/login.html', {'otp': True, 'usr': usr})


		usrname = request.POST['username']
		passwd = request.POST['password']

		user = authenticate(request, username = usrname, password = passwd) #None
		if user is not None:
			login(request, user)
			return redirect('userapp:login')
		elif not User.objects.filter(username = usrname).exists():
			messages.warning(request, f'Please enter a correct username and password. Note that both fields may be case-sensitive.')
			return redirect('userapp:login')
		elif not User.objects.get(username=usrname).is_active:
			usr = User.objects.get(username=usrname)
			usr_otp = random.randint(100000, 999999)
			UserOTP.objects.create(user = usr, otp = usr_otp)
			mess = f"Hello {usr.first_name},\nYour OTP is {usr_otp}\nThanks!"

			send_mail(
				"Welcome to KuttyStory - Verify Your Email",
				mess,
				settings.EMAIL_HOST_USER,
				[usr.email],
				fail_silently = False
				)
			return render(request, 'userapp_temp/login.html', {'otp': True, 'usr': usr})
		else:
			messages.warning(request, f'Please enter a correct username and password. Note that both fields may be case-sensitive.')
			return redirect('userapp:login')

	form = AuthenticationForm()
	return render(request, 'userapp_temp/login.html', {'form': form})
from django import forms
from django.forms import ModelForm
from django.contrib.auth.models import User
from django.contrib.auth.forms import UserCreationForm
from django.core.exceptions import ValidationError
from .models import BabyInfo,Profile

from django.contrib.auth.forms import UserCreationForm

class BabyForm1(forms.ModelForm):
    class Meta:
        model =  BabyInfo
        fields = ['story_name', 'baby_date', 'profile_pic']
        labels = {
            'story_name': 'story_name',
            'baby_date': 'baby_date',
            'profile_pic': 'profile_pic'
        }

class BabyForm2(forms.ModelForm):
    class Meta:
        model = Profile
        fields = ['name', 'mail_id', 'relationship']
        labels = {
            'name': 'name',
            'mail_id': 'mail_id',
            'relationship': 'relationship'
        }




# class UserRegisterForm(UserCreationForm):
#     email = forms.EmailField()
#     phone_no = forms.CharField(max_length = 20)
#     first_name = forms.CharField(max_length = 20)
#     last_name = forms.CharField(max_length = 20)
#     class Meta:
#         model = User
#         fields = ['username', 'email', 'phone_no', 'password1', 'password2']


class SignUpForm(UserCreationForm):
	name = forms.CharField(label = ("Username"))
	username = forms.EmailField(label = ("Email"))

	class Meta:
		model = User
		fields = ('name', 'username', 'password1', 'password2')

Reply via email to