Django показывает ошибку в форме, которая исходит от другой функции - PullRequest
0 голосов
/ 14 апреля 2019

Я пытаюсь опубликовать ModelForm, но после функции is_valid () я запускаю другую проверку, полученную из другой функции.

Что я хочу сделать, так это то, что если в результате выполнения другой функции задано значение false, в форме должно появиться сообщение об ошибке над формой, как в случае, если «ваш пароль не может быть тем же».

Поскольку функция выполняется во время процесса, я не могу использовать чистый метод в модели.

Заранее спасибо!

функция

def somefunction():
.
.
    print ("NOT WORKING")
    return False

views.py

def index(request):
    form = SomeForm(request.POST)
    if request.method == "POST":
        if form.is_valid():
            if somefunction() == True:
                form.save()
                return HttpResponseRedirect("/contact/")
            else:
                form
        else: 
            form
    return render(request, "home.html", {'form': form})

1 Ответ

0 голосов
/ 14 апреля 2019

Вы можете использовать метод add_error, чтобы добавить ошибку в форму вручную следующим образом.

form.add_error('<FIELD_NAME>)', 'your password cannot be the same')

Но я предлагаю вместо этого переопределить метод очистки из form.

...