Django выпадающий не дает мне полное выбранное имя - PullRequest
0 голосов
/ 21 апреля 2020

У меня есть выпадающий список, и он заполняется моими моделями. Я могу выбрать один, а затем pu sh представить. Но данные, которые я получаю, разбиты пробелами в имени. Поэтому, если у меня есть опция в раскрывающемся меню, например:

Please Pick Me

, я получу только шаблон

Please

. html

<form action="{% url 'parsed' %}" method="POST">
    {% csrf_token %}
    <div class="form-group">
        <label for="sel1">Select Test:</label>
        <select class="form-control" name="selectedtest" id="sel1">
            {% for test in test %}
                <option value={{ test.name }}>{{ test.name }}</option>
            {% endfor %}
        </select>
    </div>

    <div class="form-group">
        <label>Paste Event JSON</label>
        <textarea class="form-control" name="jsontextarea" rows="20"></textarea>
            <div style="text-align:center">
                </br>
                <input class="btn btn-primary" type="submit" value="Parse">
            </div>
    </div>
</form>

views.py

def parsed(request):
    data = request.POST.get('jsontextarea')
    testname = request.POST.get('selectedtest')
    print(testname)
    context = {
        "json" : data,
        "test" : Test.objects.all(),
        "event" : Event.objects.all(),
        "platform" : Platform.objects.all(),
        "device" : Device.objects.all(),
        "property" : Property.objects.all(),
        "testname" : testname
    }
    return render(request, 'jsonparser/parsed.html', context)

1 Ответ

1 голос
/ 21 апреля 2020

Попробуйте заменить

<option value={{ test.name }}>{{ test.name }}</option>

на

<option value="{{ test.name }}">{{ test.name }}</option> (обратите внимание на двойные кавычки)

Я предполагаю, что ваш HTML становится - <option value=Please Pick Me>Please pick me</option>, и в этом случае значение параметра «Пожалуйста». Однако, если вы используете двойные кавычки, это будет <option value="Please Pick Me">Please pick me</option>, что вы хотите

...