models.py class Position(models.Model): title = models.CharField(max_length=50)
def __str__(self): return self.title class Department(models.Model): title = models.CharField(max_length=50) def __str__(self): return self.title class Employee(models.Model): fullname = models.CharField(max_length=100) emp_code = models.CharField(max_length=6) mobile= models.CharField(max_length=11) email = models.EmailField(max_length=25) position= models.ForeignKey(Position,on_delete=models.CASCADE) Department = models.ForeignKey(Department, on_delete=models.CASCADE) password_first = models.CharField(max_length=25) password_again = models.CharField(max_length=25) def __str__ (self): return self.fullname forms.py User = get_user_model() class EmployeeForm(forms.ModelForm): class Meta: model = Employee fields = ('fullname','mobile','emp_code','position', 'Department', 'email', 'password_first', 'password_again') labels = { 'fullname':'Full Name', 'emp_code':'Employee Code', 'password_first': 'Password', 'password_again': 'Confirm Password', } widgets = { 'password_first': forms.PasswordInput(), 'password_again' : forms.PasswordInput(), } def __init__(self, *args, **kwargs): super(EmployeeForm,self).__init__(*args, **kwargs) self.fields['position'].empty_label = "Select" self.fields['Department'].empty_label = "Select" def clean_username(self): username = self.cleaned_data.get('emp_code') qs = User.objects.filter(username=username) if qs.exists(): raise forms.ValidationError('username already exists') return username def clean(self): cleaned_data = self.cleaned_data password_first = self.cleaned_data.get('password_first') password_again = self.cleaned_data.get('password_again') if password_first and password_again and password_first != password_again: raise forms.ValidationError("Passwords din't match") return cleaned_data def clean_email(self): email_address = self.cleaned_data.get('email') qs = User.objects.filter(email=email_address) if qs.exists(): raise forms.ValidationError("This email_id already registered") return email_address views.py def employee_form(request, id=0): if request.method == "GET": if id == 0: form = EmployeeForm() else: employee = Employee.objects.get(pk=id) form = EmployeeForm(instance=employee) return render(request, "users/employee_form.html", {'form': form}) else: if id == 0: form = EmployeeForm(request.POST) else: employee = Employee.objects.get(pk=id) form = EmployeeForm(request.POST,instance= employee) if form.is_valid(): form.save() return redirect('/list') employee_form.html {% block content %} <div class="form-group"> <form action="" method="post" autocomplete="off"> {% csrf_token %} {{form.fullname|as_crispy_field}} {{form.mobile|as_crispy_field}} {{form.email|as_crispy_field}} <div class="row"> <div class="col-md-4"> {{form.emp_code|as_crispy_field}} </div> <div class="col-md-4"> {{form.position|as_crispy_field}} </div> <div class="col-md-4"> {{form.Department|as_crispy_field}} </div> </div> <div class="row"> <div class="col-md-6" > {{form.password_first|as_crispy_field}} </div> <div class="col-md-6" > {{form.password_again|as_crispy_field}} </div> </div> <br><br><br> <div class="row"> <div class="col-md-8"> <button type="submit" class="btn btn-success btn-block btn-lg">< i class="fas fa-database"></i> Submit</button> </div> <div class="col-md-4"> <a href="{% url 'employee_list' %}" class="btn btn-secondary btn-block btn-lg"> <i class="fas fa-stream"></i> Back to list </a> </div> </div> </form> {% if form.error %} {% for field in form %} {% for error in field.error %} <p> {{ errors }} </p> {% endfor %} {% endfor %} {% for error in form.non_field_error %} <p> {{ error }} </p> {% endfor %} {% endif %} </div> {% endblock content %} -- 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/6ba949b0-0fc4-443c-ba27-136754fbd1f5n%40googlegroups.com.