Django - 以charfield形式的queryset

时间:2016-12-06 22:09:30

标签: python django

我需要帮助,我试图在select的模板中显示queryset(),但它无法正常工作。

这是我得到的:

from __future__ import unicode_literals

from django.db import models

# Create your models here.
from django import forms
from activos.models import activos
from activos.forms import activosForm
# Create your models here.
class grupos(models.Model):
    nombre_grupo = models.CharField(max_length=100)
    frecuencia = models.CharField(max_length=100)
    offset = models.CharField(max_length=100)
    activos_class = activos()
    activos_query = activos.objects.all()
    res =str(activos_query)
    PORT_CHOICES = (res,res),
    nombre_puerto = models.CharField(max_length=100,choices=PORT_CHOICES)

    def __unicode__(self):
        return self.nombre_grupo

    def __str__(self):
        return self.nombre_grupo

正如您可以看到我从我的项目中的另一个应用中的usuario调用activos(),我想在我的模板中的select中显示该结果 但是当我这样做时,我得到了这样的东西:

-------------
<QuerySet[<activos:alvaro>, <activos:david>,<activos:daniel>]>

我想要这样的事情:

-----
alvaro
david
daniel

我试图避免编辑此行res =str(activos_query[0]),但如果我从数据库中删除每个用户,我将获得index error

有没有一种有效的方法呢?

Django版本:1.10.4

修改

grupos views.py

from django.shortcuts import render
from django.conf import settings
from django.core.mail import send_mail
from .forms import gruposModelForm
from .models import grupos
from activos.models import activos


def grupos_test(request):
    titulo = "hola"
    if request.user.is_authenticated():
        titulo = "bienvenido %s" %(request.user)
    form = gruposModelForm(request.POST or None)
    queryset = grupos.objects.all()
    # query_delete = queryset.delete()
    context = {
    "titulo": titulo,
    "form": form,
    "queryset": queryset,
    "res": res,
    }
    if form.is_valid():
        instance = form.save(commit=False)
        nombre_grupo = form.cleaned_data.get("nombre_grupo")
        frecuencia = form.cleaned_data.get("frecuencia")
        if not instance.nombre_grupo:
            instance.nombre_grupo = "PERSONA"
        instance.save()
        context = {
            "titulo": "Gracias %s" %(nombre_grupo)
        }
        if not nombre_grupo:
            context = {
                "titulo": "Gracias %s!" %("desconocido"),
                "form": form,
            }

        # form_data = form.cleaned_data
        # abc =  form_data.get("email")
        # abc2 = form_data.get("nombre")
        # obj = Registrado.objects.create(email=abc,nombre=abc2)
    # context = {
    #   "titulo": titulo,
    #   "form": form,
    # }
    return render(request, "forms5.html", context)

HTML

{{ titulo }}
<hr/>
<br/>
<form method="POST" action="">{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Registrame" />
</form>

<p>EXAMPLE</p>
{% for g in queryset %}
  <select>{{ g.usuario }}</select>
{% endfor %}

1 个答案:

答案 0 :(得分:0)

您只是输出QuerySet(换句话说,&#34;列表&#34;模型对象)。在模板中运行for循环以取出每个循环。

示例

{% for g in grupos %}
  <select>{{ g }}</select>
{% endif %}