python Джанго Пасар стоимость text box в функцию

Хоть бы смогите помогать мне, из-за которого я существую, у меня нет даже идеи как делать это. Я понимаю, что во время использования формуляров с Джанго существуют два способа, одна с формулярами, произведенными моделями (bd) и другие без моделей, совсем с forms.py, я не знаю, если существует возможность перемещать параметры в функцию с внешнего html (Который не был бы обусловлен в forms).

Выражение я попробовал это сделать form, в forms.py, что не зависел от модели, что производит мне красивый form ни одного text box, оно функционирует хорошо помещаю стоимость и он это печатает на той же странице или в той, что я показываю ему, но оказывается, что у меня есть следующий недостаток, я нуждаюсь в функции, которая складывала бы всю стоимость, прошедшую по одному или большему количеству text box, например:

def hola(return,*args):
    sum(args)...
    ...

До сих пор все хорошо, следующий код - java рукописный шрифт, который я увидел в w3schools, и я думаю, что то, в чем я нуждаюсь, я это добавил к template, что он делает, состоит в том, чтобы добавлять главным образом text или box или столькие, как я хотел кроме того, который уже определен имея код следующего способа.

<form action="" method="post">
    {% csrf_token %}
    {{ form }}


    <input type="submit" value="Submit" />
</form>

<p>Click the button to create a Text Field.</p>

<button onclick="myFunction()">Try it</button>

<script>
function myFunction() {
    var x = document.createElement("INPUT");
    x.setAttribute("type", "text");
    x.setAttribute("value", "Hello World!");
    document.body.appendChild(x);
}
</script> 

Что у меня нет идеи, это как перемещение этой стоимости textbox, произведенных кнопкой в функцию ** args, как я способствую тому, чтобы эта стоимость произошла где-то здесь вместе со стоимостью {{form}}

Теоретически в конце дня это у меня есть renderizado следующего способа.

<form action="" method="post">
    <input type='hidden' name='csrfmiddlewaretoken' value='1ZpJLsYEZBeSIPjqzIWmfGfO4UGcSYQm' />
    <tr><th><label for="id_your_name">NOMBRE EN FORMS:</label></th><td><input id="id_your_name" maxlength="100" name="your_name" type="text" /></td></tr>


    <input type="submit" value="Submit" />
</form>

<p>Click the button to create a Text Field.</p>

<button onclick="myFunction()">Try it</button>

<script>
function myFunction() {
    var x = document.createElement("INPUT");
    x.setAttribute("type", "text");
    x.setAttribute("value", "Hello World!");
    document.body.appendChild(x);
}
</script>

Помоги porfa!

1
задан 04.10.2016, 07:29
2 ответа

Сначала, когда пользователь нажимает на кнопку "submit" формуляра, браузер вооружит просьбу HTTP используя метод POST и маршрут, который был показан в признаке "action" этикетки form.

Поля, которые ты добавил посредством языка сценариев JavaScript, также добавлены в просьбе, из-за того, что они будут доступны в переменной POST объекта HttpRequest в виде.

Пример:

Я остаюсь с твоим примером, но давайте представлять, что у action твоего формуляра есть маршрут / sumar_argumentos

<form action="/sumar-argumentos">
    <!--tu codigo -->
</form>

Aahora в твоем приложении django ты регистрируешь функцию, которая даст ему возвращенная в urls.py.

url(r'^sumar-argumentos', views.funcion_prueba)

В твоей функции ты можешь соглашаться на признаки, посланные в формуляр следующей формы:

def funcion_prueba(request):
    response = ''
    if validar_valores(request.POST):
        for key, value in request.POST.items():
            if key != 'csrfmiddlewaretoken':
                response += 'key:%s value:%s\n' % (key, value)
        return HttpResponse(response)

Переменная request.POST храни словарь со всеми параметрами, полученными в просьбе, но это не хорошая практика соглашаться на них прямо, поэтому я разместил метод validar_valores, где ты должен выдавать полученные параметры.

Также ты можешь использовать Формуляр django, чтобы делать утверждение: ты создал бы класс, который он получал в наследство бы django.forms.Form и ты настраиваешь утверждение для того, чтобы он принял во внимание динамические признаки.

Я обобщил какие-то вещи во время, но я жду идеи.

1
ответ дан 24.11.2019, 13:13

действительно я благодарен много за твое время и за ориентацию :)

Смотри. Если, действительно forms, который я использую, если он django, я сделал, что ты поместил линии, достигни и, кажется, функционируй хорошо, однако в момент делания reder печатает мне token.

Я выставляю код, которым я обладаю, действительно надеюсь, что ты можешь помогать мне, из-за которого я провожу дни с этим.

forms.py

class NameForm(forms.Form):
    your_name = forms.CharField(label='Puntos a sumar', max_length=100, initial='2,4,6,8,10')

views.py

def funcion_prueba(request):
    if request.method == "POST":
        form = NameForm(request.POST)
        response = ''
        for key, value in request.POST.items():
            response += 'key:%s value:%s\n' % (key, value)
        return HttpResponse(response)       

    else:
        form = NameForm() #hacemos formulario en blanco


    return render(request, 'datos.html', {'form': form})

datos.html

<form action="/sumar-argumentos" method="post">
    {% csrf_token %}
    {{ form }}


    <input type="submit" value="Submit" />
</form>

<p>AGREGAR VALOR</p>

<button onclick="myFunction()">Agregar</button>

<script>
function myFunction() {
    var x = document.createElement("INPUT");
    x.setAttribute("type", "text");
    x.setAttribute("value", "0");
    document.body.appendChild(x);
}
</script>

Что, когда я прибываю в http://127.0.0.1:8000/sumar-argumentos, показывает мне экран, чтобы вводить данные в компьютер.

Совсем чудо до этого момента.

introducir la descripción de la imagen aquí

Однако, когда renderiza, если он помещает код, который я помещаю в label form но не динамических.

introducir la descripción de la imagen aquí

Непосредственно вслед напечатай token: introducir la descripción de la imagen aquí

Я надеюсь, что ты можешь бросать мне руку.

Большое спасибо из-за твоего внимания.

0
ответ дан 24.11.2019, 13:13

Теги

Похожие вопросы