Как получить доступ к значениям, представленным в форме, выполнить действие, используя эти значения и вернуть пользователю новую страницу при нажатии кнопки «Отправить»? - PullRequest
0 голосов
/ 13 июня 2019

Я работаю над небольшим приложением Django. Я хочу получить входные значения от пользователей, используя форму с 4 полями с именем любовь, потребность, деньги и хорошо . Я хочу получить доступ к этим значениям и применить функцию с именем Find_purpose () и вернуть страницы на основе результата этой функции. Я получаю две ошибки все время, если изменение возврата отступа () отступ 1. Представление target_finder.views.form_fill не возвращало объект HttpResponse. Вместо этого он вернул None. 2. результат, вызываемый до присвоения

Я использовал Find Purpose для относительного URL новой страницы с именем result.html , но потом я понял, что это просто еще одна ссылка href, поэтому она не будет никакой пользы , Затем я использовал кнопку submit , но после этого ничего не показывалось. Мой find_purpose () работает очень хорошо, когда используется с простыми строковыми данными, и возвращает набор, включающий много пересечений.

forms.py

    from django import forms
    class FormName(forms.Form):

    need=forms.CharField(widget=forms.Textarea, label="Things Society 
    Need")

    love=forms.CharField(widget=forms.Textarea, label="Things you love 
    doing")

    money=forms.CharField(widget=forms.Textarea, label="Things that can 
    earn you money")

    good=forms.CharField(widget=forms.Textarea, label="Things you are good 
    at")

это для views.py

    from django.shortcuts import render
    from purpose_finder import forms
    from purpose_finder.functions import find_purpose

    def index(request):
    return render(request,'purpose_finder/index.html')


    def form_fill(request):
    form=forms.FormName()
    return render(request,'purpose_finder/form.html',{'form':form})

    def purpose_is(request):
        form=forms.FormName()
        if request.method=='POST':
            form=forms.FormName(request.POST)
            if form.is_valid():
               need = form.cleaned_data['need']
               love = form.cleaned_data['love']
               money = form.cleaned_data['money']
               good = form.cleaned_data['good']

                result=find_purpose(need,love,money,good)

            else:
                return render(request,'purpose_finder/index.html')

            if len(result)==0:
                return render(request,'purpose_finder/result.html', 
                                      {'my_result':"no purpose"})

            else:
                return render(request, 'purpose_finder/result.html', 
                                           {'my_result': result})
    return render(request,'purpose_finder/index.html')

forms.html

    % extends 'purpose_finder/base_html.html' %}
    {% block body_block %}
    <p>Please fill out the form to find the purpose of your life. You can 
    fill any numbers of entries separated by , </p>
    <div class="container">
        <form method="POST">
        {{ form.as_p }}
        {% csrf_token %}
            <input type="button", value="Submit" >
        </form>
    </div>

    {% endblock %}

result.html

    {% extends 'purpose_finder/base_html.html' %}
    {% block body_block %}

    <h1>This is your result</h1>
     {{ my_result }}
    {% endblock %}

Это ошибки, которые продолжают появляться

    The view purpose_finder.views.form_fill didn't return an HttpResponse 
    object. It returned None instead.

второй -

    result referenced before assignment

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

...