Есть ли способ напечатать ключи словаря и соответствующий список значений в моем приложении на основе Django? - PullRequest
0 голосов
/ 31 января 2019

Может ли кто-нибудь ответить на это, Это мой maketest.html. Я пытаюсь напечатать словарь с ключами и соответствующим списком значений. Есть ли в django модуль, серверная часть или функция, которая может выполнять что-то подобное?

Есть ли решение этой проблемы в python?

{% extends 'TakeTestApp/base.html' %}
{% block content %}
    <h3 class="display-6">{{ TestName }}</h3>
    <article class="media content-section">
        <div class="media-body">
            <div class="article-metadata">
                <p class="display-6">
                    {% for q in quesBank %}
                        {{ q  }}
                        {{ quesBank[q] }}
                    {% endfor %}

                </p>

            </div>
        </div>
    </article>
{% endblock content%}

Это мой Ques.txt,

Q: What is your name?
opt1:Vineeth*
opt2:Vineth
opt3:Vinith
opt4:Vinth

Q: Where are u from?
opt1:Hyderabad
opt2:Secunderabad*
opt3:Rajasthan
opt4:vizag

Q: What is the capital of india?
opt1:* Delhi
opt2: Telangana
opt3: Madhya Pradesh
opt4: Gujrat

Q: What is 2+1?
opt1: 0
opt2: 1
opt3:* 3
opt4: 6
Q: Python is a _____ language
opt1: Markup
opt2: not
opt3:* programming
opt4: English

, а мой views.py -

from django.shortcuts import render, redirect
from Test.forms import TestForm

# Create your views here.


def MakeTest(request):
    file1 = open('ques.txt', 'r')
    lines = file1.readlines()
    file1.close()
    ques = []
    options = []
    ans = []
    for line in lines:
        if "Q:" in line:
            ques.append(line)
        if "opt" in line:
            options.append(line.replace('*', ''))
        if "*" in line:
            ans.append(line)
    i = 0
    quesBank = {}
    for qu in ques:
        quesBank[qu] = [options[x] for x in range(i, i + 4)]
        i = i + 4
    return render(request, 'TestMaking/maketest.html', {'TestName': 'Test Make App', 'ques': ques, 'options': options, 'quesBank': quesBank})

Это то, что я пытался, но не смог получить требуемый вывод

Я ожидаю вывод как

Q: What is your name?
opt1:Vineeth
opt2:Vineth
opt3:Vinith
opt4:Vinth

Q: Where are u from?
opt1:Hyderabad
opt2:Secunderabad
opt3:Rajasthan
opt4:vizag

Q: What is the capital of india?
opt1: Delhi
opt2: Telangana
opt3: Madhya Pradesh
opt4: Gujrat

Q: What is 2+1?
opt1: 0
opt2: 1
opt3: 3
opt4: 6
Q: Python is a _____ language
opt1: Markup
opt2: not
opt3: programming
opt4: English

Выше должно отображаться на моем testmake.html

1 Ответ

0 голосов
/ 31 января 2019

Решение документировано , и вам не нужен какой-либо специальный модуль или что-то еще:

<ul>
{% for q, opts in in quesBank.items %}
    <li>
        Q : {{ q  }}
        <ol> 
        {% for opt in opts %}
          <li>{{opt}}</li>        
        {% endfor %}
        </ol>
    </li>
   {% endfor %} 
</ul>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...