Я создал Django форму, которая работает нормально, но когда я пытаюсь обновить ее, она не сохраняет данные в базу данных.

Когда я размещаю данные через форму модели django, она работает нормально, но когда я обновляю данные с помощью той же формы, она не работает. Пожалуйста, помогите мне с этим, а также когда я обновляю форму, все поля заполняются, но не поле изображения. Он работал нормально, когда я обновлял форму несколько дней назад, но сейчас он не работает. Я удалил миграции и базу данных, но все равно не работает. Жду вашей помощи, спасибо заранее.

вот мой код:

views.py (для создания)

def dashboard_employees_create(request):
    if not (request.user.is_authenticated and request.user.is_superuser and request.user.is_staff):
        return redirect('/')

    if request.method == 'POST':
        form = EmployeeCreateForm(request.POST,request.FILES)
        if form.is_valid():
            instance = form.save(commit = False)
            user = request.POST.get('user')
            assigned_user = User.objects.get(id = user)

            instance.user = assigned_user 

            instance.title = request.POST.get('title')
            instance.image = request.FILES.get('image')
            instance.firstname = request.POST.get('firstname')
            instance.lastname = request.POST.get('lastname')
            instance.reporting_to = request.POST.get('reporting_to')
            instance.startdate = request.POST.get('startdate')
            instance.employeetype = request.POST.get('employeetype')
            instance.employeeid = request.POST.get('employeeid')
            instance.dateissued = request.POST.get('dateissued')

            instance.save()
            
            messages.success(request,'Account Created Successfully!!',extra_tags = 'alert alert-warning alert-dismissible show')
            return  redirect('dashboard:employees')
        else:
            messages.error(request,'Trying to create dublicate employees with a single user account ',extra_tags = 'alert alert-warning alert-dismissible show')
            return redirect('dashboard:employeecreate')


    dataset = dict()
    form = EmployeeCreateForm()
    dataset['form'] = form
    dataset['title'] = 'Register Employee'
    return render(request,'dashboard/employee_create.html',dataset)

views.py для обновления: (результат - "Form Data not Valid")

def employee_edit_data(request,id):
    if not (request.user.is_authenticated and request.user.is_superuser and request.user.is_staff):
        return redirect('/')
    employee = get_object_or_404(Employee, id = id)
    if request.method == 'POST':
        form1 = EmployeeCreateForm(request.POST or None,request.FILES or None,instance = employee)
        if form1.is_valid():
            instance = form1.save(commit = False)

            user = request.POST.get('user')
            assigned_user = User.objects.get(id = user)

            instance.user = assigned_user

            instance.title = request.POST.get('title')
            instance.image = request.FILES.get('image')
            instance.firstname = request.POST.get('firstname')
            instance.lastname = request.POST.get('lastname')
            instance.reporting_to = request.POST.get('reporting_to')
            instance.startdate = request.POST.get('startdate')
            instance.employeetype = request.POST.get('employeetype')
            instance.employeeid = request.POST.get('employeeid')
            instance.dateissued = request.POST.get('dateissued')

            instance.save()
            
            messages.success(request,'Account Created Successfully!!',extra_tags = 'alert alert-warning alert-dismissible show')
            return  redirect('dashboard:employees')

        else:
            messages.error(request,'Error Updating account',extra_tags = 'alert alert-warning alert-dismissible show')
            return HttpResponse("Form data not valid")

    
    dataset = dict()
    form = EmployeeCreateForm(request.POST or None,request.FILES or None,instance = employee)
    dataset['form'] = form
    dataset['title'] = 'Edit - {0}'.format(employee.get_full_name)
    return render(request,'dashboard/employee_create.html',dataset)

forms.py

class EmployeeCreateForm(forms.ModelForm):
    employeeid = forms.CharField(widget=forms.TextInput(attrs={'placeholder':'please enter 5 characters without ZP or slashes eg. A0025'}))
    image = forms.ImageField(widget=forms.FileInput(attrs={'onchange':'previewImage(this);'}))
    class Meta:
        model = Employee
        exclude = ['is_blocked','is_deleted','created','updated']
        widgets = {
                'bio':forms.Textarea(attrs={'cols':5,'rows':5})
        }
Вернуться на верх