Форма Django is_valid () отсутствует 1 обязательный позиционный аргумент: 'self' - PullRequest
1 голос
/ 03 ноября 2019

Я пытаюсь создать form(boqform) для публикации данных в model(boqmodel), но я получаю это

typeerror is_valid () отсутствует 1 обязательный позиционный аргумент: 'self'

Мне нужно отобразить форму с именем boqform в html-шаблоне и опубликовать данные, введенные пользователем в boqmodel

мой взгляд:

def boqmodel1(request):

    if boqform.is_valid():
        form = boqform(request.POST)
        obj=form.save(commit=False)
        obj.save()
        context = {'form': form}
        return render(request, 'create.html', context)
    else:
        context = {'error': 'The post has been successfully created. Please enter boq'}
        return render(request, 'create.html', context)

Traceback:

File "C:\Users\TRICON\AppData\Local\Programs\Python\Python38-32\lib\site-packages\django\core\handlers\exception.py" in inner
  34.             response = get_response(request)

File "C:\Users\TRICON\AppData\Local\Programs\Python\Python38-32\lib\site-packages\django\core\handlers\base.py" in _get_response
  115.                 response = self.process_exception_by_middleware(e, request)

File "C:\Users\TRICON\AppData\Local\Programs\Python\Python38-32\lib\site-packages\django\core\handlers\base.py" in _get_response
  113.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "C:\Users\TRICON\Desktop\ind\ind\boq\views.py" in boqmodel1
  23.     if boqform.is_valid():

Exception Type: TypeError at /boq/create/
Exception Value: is_valid() missing 1 required positional argument: 'self'

1 Ответ

1 голос
/ 03 ноября 2019

Вы пытаетесь вызвать функцию экземпляра is_valid() в классе boqform. Сначала вам нужно получить экземпляр boqform. Переключение линий 1 и 2 функции должно решить проблему:

def boqmodel1(request):
    form = boqform(request.POST)
    if form.is_valid():
        obj=form.save(commit=False)
        obj.save()
        context = {'form': form}
        return render(request, 'create.html', context)
    else:
        context = {'error': 'The post has been successfully created. Please enter boq'}
        return render(request, 'create.html', context)
...