Issues with validation of multiple forms
I am using two models in my app and different form for each model, when I tried to validate these two forms , one model is validated but other is not. model.py from django.db import models from django.contrib.auth.models import User class Customer(models.Model): user=models.OneToOneField(User) birthday=models.DateField() website=models.CharField(max_length=50) store=models.CharField(max_length=50) welcomemail=models.CharField(max_length=50) def __unicode__(self): return self.user class Customer_check_attributes(models.Model): user=models.ManyToManyField(User) billing_add=models.CharField(max_length=50) shipping_add=models.CharField(max_length=50) payment_method=models.CharField(max_length=50) shipping_method=models.CharField(max_length=50) reward_points=models.CharField(max_length=50) form for first model **Customer** class Registration_Form(ModelForm): first_name = forms.CharField(label=(u'First Name')) last_name = forms.CharField(label=(u'Last Name')) username = forms.CharField(label=(u'User Name')) email = forms.EmailField(label=(u'Email Address')) password = forms.CharField(label=(u'Password'), widget=forms.PasswordInput(render_value=False)) : class Meta: model=Customer exclude=('user',) form for 2nd model **Customer_check_attributes** In template I am using this **for 1st model Customer** and it is validating the field first name {% if form.first_name.errors %}{{ form.first_name.errors }}{% endif %} Firstname: {{ form.first_name }} **for 2nd model Customer_check_attributes** and it is not validating the field billing add {% if check.billing_add.errors %}{{ check.billing_add.errors }}{% endif %} Billing Address: {{ check.billing_add }} here I am using **check** instead of form because I am storing the form in this and return it in context view.py from django.contrib.auth.models import User from customer_reg.models import Customer,Customer_check_attributes from django.http import HttpResponseRedirect from django.shortcuts import render_to_response from django.template import RequestContext from customer_reg.forms import Registration_Form, Check_Attribute_Form, LoginForm from django.contrib.auth import authenticate, login, logout from django.contrib.auth.decorators import login_required def CustomerRegistration(request): if request.user.is_authenticated(): return HttpResponseRedirect('/profile/') if request.method == 'POST': form = Registration_Form(request.POST) if form.is_valid(): user=User.objects.create_user(username=form.cleaned_data['username'], email=form.cleaned_data['email'], password = form.cleaned_data['password']) user.first_name = form.cleaned_data['first_name'] user.last_name = form.cleaned_data['last_name'] user.save() #customer=user.get_profile() #customer.birthday=form.cleaned_data['birthday'] #customer.website=form.cleaned_data['website'] #customer.store=form.cleaned_data['store'] #customer.welcomemail=form.cleaned_data['welcomemail'] #customer.save() customer=Customer(user=user, website=form.cleaned_data['website'], birthday=form.cleaned_data['birthday'], store=form.cleaned_data['store'], welcomemail=form.cleaned_data['welcomemail']) customer.save() return HttpResponseRedirect('/profile/') else: check_form=Check_Attribute_Form() context={'form':form, 'check':check_form} return render_to_response('customer_register.html',context , context_instance=RequestContext(request)) else: ''' user is not submitting the form, show them a blank registration form ''' form = Registration_Form() check_form = Check_Attribute_Form() context={'form':form,'check':check_form} return render_to_response('customer_register.html',context , context_instance=RequestContext(request)) #PROFILE## @login_required def Profile(request): if not request.user.is_authenticated(): return HttpResponseRedirect('/login/') #select = select * from auth_users #reg_users = User.objects.all() customer
Issues with validation
I am using two models in my app and different form for each model, when I tried to validate these two forms , one model is validated but other is not. model.py from django.db import models from django.contrib.auth.models import User class Customer(models.Model): user=models.OneToOneField(User) birthday=models.DateField() website=models.CharField(max_length=50) store=models.CharField(max_length=50) welcomemail=models.CharField(max_length=50) def __unicode__(self): return self.user class Customer_check_attributes(models.Model): user=models.ManyToManyField(User) billing_add=models.CharField(max_length=50) shipping_add=models.CharField(max_length=50) payment_method=models.CharField(max_length=50) shipping_method=models.CharField(max_length=50) reward_points=models.CharField(max_length=50) form for first model **Customer** class Registration_Form(ModelForm): first_name = forms.CharField(label=(u'First Name')) last_name = forms.CharField(label=(u'Last Name')) username = forms.CharField(label=(u'User Name')) email = forms.EmailField(label=(u'Email Address')) password = forms.CharField(label=(u'Password'), widget=forms.PasswordInput(render_value=False)) : class Meta: model=Customer exclude=('user',) form for 2nd model **Customer_check_attributes** In template I am using this **for 1st model Customer** and it is validating the field first name {% if form.first_name.errors %}{{ form.first_name.errors }}{% endif %} Firstname: {{ form.first_name }} **for 2nd model Customer_check_attributes** and it is not validating the field billing add {% if check.billing_add.errors %}{{ check.billing_add.errors }}{% endif %} Billing Address: {{ check.billing_add }} here I am using **check** instead of form because I am storing the form in this and return it in context view.py from django.contrib.auth.models import User from customer_reg.models import Customer,Customer_check_attributes from django.http import HttpResponseRedirect from django.shortcuts import render_to_response from django.template import RequestContext from customer_reg.forms import Registration_Form, Check_Attribute_Form, LoginForm from django.contrib.auth import authenticate, login, logout from django.contrib.auth.decorators import login_required def CustomerRegistration(request): if request.user.is_authenticated(): return HttpResponseRedirect('/profile/') if request.method == 'POST': form = Registration_Form(request.POST) if form.is_valid(): user=User.objects.create_user(username=form.cleaned_data['username'], email=form.cleaned_data['email'], password = form.cleaned_data['password']) user.first_name = form.cleaned_data['first_name'] user.last_name = form.cleaned_data['last_name'] user.save() #customer=user.get_profile() #customer.birthday=form.cleaned_data['birthday'] #customer.website=form.cleaned_data['website'] #customer.store=form.cleaned_data['store'] #customer.welcomemail=form.cleaned_data['welcomemail'] #customer.save() customer=Customer(user=user, website=form.cleaned_data['website'], birthday=form.cleaned_data['birthday'], store=form.cleaned_data['store'], welcomemail=form.cleaned_data['welcomemail']) customer.save() return HttpResponseRedirect('/profile/') else: check_form=Check_Attribute_Form() context={'form':form, 'check':check_form} return render_to_response('customer_register.html',context , context_instance=RequestContext(request)) else: ''' user is not submitting the form, show them a blank registration form ''' form = Registration_Form() check_form = Check_Attribute_Form() context={'form':form,'check':check_form} return render_to_response('customer_register.html',context , context_instance=RequestContext(request)) #PROFILE## @login_required def Profile(request): if not request.user.is_authenticated(): return HttpResponseRedirect('/login/') #select = select * from auth_users #reg_users = User.objects.all() customer