Получение данных формы в промежуточном программном обеспечении Django - PullRequest
0 голосов
/ 07 марта 2019

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

Ниже мой html и сборка промежуточного программного обеспечения на python:

middleware.py:

class TodoappMiddleware(object):
    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        response = self.get_response(request)
        if request.method == "GET":
            f = open("/home/gblp250/Desktop/log", 'a')
            f.write("User clicked ")
            name = request.GET.get('name')
            if not name == 'None':
                f.write(str(name))
                f.write("\n")
            f.close()

        elif request.method == 'POST':
            f = open("/home/gblp250/Desktop/log", 'a')
            f.write("User clicked ")
            if request.POST.get("Login"):
                nm = request.POST.get("Login")
                if not nm == 'None':
                    f.write("Login\n")
            elif request.POST.get("Authorize"):
                f.write("Authorize\n")
            elif request.POST.get("Assign"):
                f.write("Assign\n")
            elif request.POST.get("delete_task"):
                f.write("Delete task\n")
            elif request.POST.get("mark_complete"):
                f.write("Mark as complete\n")
            elif request.POST.get('authorise_users'):
                form = AuthUserCheckbox(request.POST)
                if form.is_valid():
                    ch = form.cleaned_data.get('choice')
                    print "User then chose "
                    f.write(ch)

            f.close()

HTML:

{% extends 'todoapp/base.html' %}

{% block title %}Authorize users{% endblock %}

{% block content %}
    <h2>Select users to authorize</h2>
    <form method="post" action="{% url 'auth_users' %}" id="authorise_users">
        {% csrf_token %}
        {{ form.choice }}
        <br/><input type="submit" value="Authorize" name="Authorize">
        &nbsp;&nbsp;<button onclick="location.href='{%url 'dashboard' %}?name=Go back'" type="button">Go back</button>
    </form>
{% endblock %}

Все request.POST.get являются кнопками, кроме authorise_users, это флажок. Я не могу получить введенное пользователем значение для этого. Все нажатия кнопок у меня есть, но я не могу получить выбранное значение для authorise_users

1 Ответ

0 голосов
/ 07 марта 2019

Исходя из полученной ошибки (упомянутой в комментарии к вопросу), вам, вероятно, нужно изменить строку

if request.choice.is_valid():

до

if form.choice.is_valid():

или

if form.is_valid():

Помогает ли это устранить ошибку?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...