如何按"类型"列出项目在Django视图中

时间:2015-06-26 19:40:43

标签: django

首先,我对Django很新,这是一个简单的问题。我道歉但我似乎无法正确地搜索搜索以找到答案。我们非常感谢您提供的任何帮助。

fyi:Django版本是1.3.7

我有一个简单的库存应用程序,我正在创建一个视图,按设备类型列出项目(例如:平板电脑)和模型类型(例如:iPad Air或iPad 2)。我希望能够列出设备类型的所有实例,并按模型排序结果。例如,我的页面看起来像这样:

片剂:

iPad的播出:

- 所有iPad播放列表

iPad 2 

- 所有iPad 2的列表

不幸的是,我的页面在每个列表中显示模型类型的单个实例,并为每个设备创建一个新列表,例如:

片剂:

iPad的播出:

- 仅列出单个项目

iPad Air的

- 仅列出单个项目

等...

iPad 2 

- 仅列出单个项目

iPad 2 

- 仅列出单个项目

等...

以下是我的models.py中的条目(仅编辑为重要位):

class DeviceType(models.Model):
    device_type = models.CharField(max_length=25)

    def __unicode__(self):
        return self.device_type

class DeviceModelType(models.Model):
    model_type = models.CharField(max_length=25)

    def __unicode__(self):
        return self.model_type

class Device(models.Model):
...
    device_type = models.ForeignKey(DeviceType)
    device_model = models.ForeignKey(DeviceModelType)
    name_of_device = models.CharField(max_length=25)
...
    def __unicode__(self):
        return u'%s, %s, %s' % (self.name_of_device, self.manufacturer, self.device_model)

这是我的观点:

def check_out(request, device_id):
    available_device_list = Device.objects.all().order_by('id')
    return render_to_response('inventory/list.html', {'available_device_list': available_device_list, })

和我的模板:

{% extends "base.html" %}

{% block title %}Inventory Test{% endblock title %}
{% block head %}Inventory Test{% endblock head %}
{% block content %}
<p><h3>Inventory:</h3></p>
{% for Device in available_device_list %}
{{ Device.device_model }}'s:
<ul>
<li>
<a href="http://127.0.0.1:8000/inventory/device_checkout.html".{{ Device.device_model }}<strong>{{ Device.name_of_device }}</strong></a>
</li>
</ul>
{% endfor %}
{% endblock content %}
{% block footer %}
<p>
<hr/><br/>
<a href="http://127.0.0.1:8000/admin/">admin</a></p>
{% endblock footer %}

0 个答案:

没有答案