Как показать больше объектов в моем HTML с Django (запросы) - PullRequest
0 голосов
/ 01 июля 2019

Я хочу показать больше запросов на моей html-странице, но она показывает только один объект. Я не знаю, как добавить еще

Это в mysql, html, django1.11 и python 2.7.15

views.py

   def administrador(request):
    alumno = Alumnos.objects.get(pk=1)
    context = { 'alumno': alumno }
    mapa = mapas.objects.get(pk=4)
    context2 = { 'mapa' : mapa}
    competencias = Competencias.objects.get(pk=1)
    context3 = { 'competencias' : competencias}
    return render(request, 'competencias_app/competencias.html',context)
<form action="/competencia" method="POST">
          {% csrf_token %}

            <div class="container-alumnos">
                <div>
                <select id="carrera" name="Carrera">
                    <option value="1">TICS</option>
                    <option value="2">Carrera</option>
                    <option value="3">Carrera</option>
                    <option value="4">Carrera</option>
                    <option value="5">Carrera</option>
                </select>  
                </div>

                <div>
                    <select id="Alumno" name="Nombre">
                        <option value="{{alumno.idAlumnos}}">{{alumno.nombre}}</option>
                    </select> 
                </div>
                <form action="">
                    <label for="ID">ID</label>
                    <input type="input" name="id" disabled value="{{alumno.idAlumnos}}"><br>
                    <label for="apellidos">Apellidos</label>
                    <input type="input" name="apellidos" disabled value="{{alumno.apellidos}}"><br>
                    <label for="Correo">Correo</label>
                    <input type="input" name="Correo" disabled value="{{alumno.correo}}"><br>
                </form>

            </div>

            <select id="opciones" name="Semana">
                    <option value="1">Semana 1</option>
                    <option value="2">Semana 2</option>
                    <option value="3">Semana 3</option>
                    <option value="4">Semana 4</option>
                    <option value="5">Semana 5</option>
                </select>
            <div class="container-listas">

                <select name="OS" size=9>
                    <option selected value="0"> Elige una opción </option>
                        <optgroup label="{{mapa.nombre}}"> 
                        <option value="1">{{competencias.nombre}}</option> 
                        <option value="2">Nombre Competencia</option> 
                        <option value="3">Nombre Competencia</option> 
                    </optgroup> 
                    <optgroup label="Mapa - Nombre"> 
                        <option value="10">Nombre Competencia</option> 
                        <option value="11">Nombre Competencia</option> 
                        <option value="12">Nombre Competencia</option> 
                    </optgroup> 
                </select>

Мне нужно добавить мапу объекта и компетенции. Выпускник объекта у меня нет проблем

Ответы [ 2 ]

2 голосов
/ 01 июля 2019

.get() возврат одного объекта. Если вы хотите, чтобы все объекты попробуйте .all()

alumno = Alumnos.objects.all()
competencias = Competencias.objects.all()

.all() возврат QuerySet. В HTML попробуйте вот так

<select id="Alumno" name="Nombre">
{% for alum in alumno %}
     <option value="{{alum.idAlumnos}}">{{alum.nombre}}</option>
{% endfor %}
</select> 
0 голосов
/ 01 июля 2019

Пользователь filter вместо get. Потому что get возвращает один объект, а filter возвращает все соответствующие объекты.

def administrador(request):
    alumno = Alumnos.objects.filter(pk=1)
    mapa = mapas.objects.filter(pk=4)
    competencias = Competencias.objects.filter(pk=1)
    context = {
        'alumno': alumno,
        'mapa': mapa,
        'competencias': competencias
    }
    return render(request, 'competencias_app/competencias.html', context)

В вашем template

Для Alumnao,

<select id="alumno" name="alumno">
{% for item in alumno %}
     <option value="{{item.id}}">{{item.your_desired_field}}</option>
{% endfor %}
</select> 

Для mapa,

<select id="mapa" name="mapa">
{% for item in mapa %}
     <option value="{{item.id}}">{{item.your_desired_field}}</option>
{% endfor %}
</select> 

Для competencias,

<select id="competencias" name="competencias">
{% for item in competencias %}
     <option value="{{item.id}}">{{item.your_desired_field}}</option>
{% endfor %}
</select> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...