python - 记录未显示在模板中

标签 python django django-generic-views

我在 Windows 7 上使用 Python 2.7.2 和 Django 1.4.1 运行此程序。

我在 sqlite 数据库中有几条记录,我试图使用通用类 View ListView 显示它们。我已经消除了一些不可能的东西,并将所有内容剥离为最简单的格式,但我不知道去哪里找出它可能是什么。

型号:

class DMG_New_Inv (models.Model): # DMG's
def __init__(self, *args, **kwargs):
    super(DMG_New_Inv, self).__init__(*args, **kwargs)
    self.objects = None

model_num = models.ForeignKey(DMG_Models_Default, verbose_name='Model')
serial_num = models.CharField(max_length=25, verbose_name='Serial Number')
date_in = models.DateField(auto_now_add=True) #this will set the date to the creation date automaticly
date_out = models.DateField(blank=True, null=True) # the date is was removed from inventory
status = models.CharField(max_length=2, verbose_name='Asset Status', choices=DMG_ASSET_STATUS) # see list above
company = models.CharField(max_length=50, verbose_name='Company', blank=True, null=True) # the company or person who received the product
notes = models.CharField(max_length=255, verbose_name='Notes',  blank=True, null=True)
pass
class Meta:
    verbose_name = 'DMG'
    verbose_name_plural = 'DMGs'

查看:

from django.views.generic import list
from django.views.generic import ListView
from django.shortcuts import get_object_or_404

from inventory.models import DMG_New_Inv

class dmg_new_status(ListView):

context_object_name = "dmg_new_status"
template_name = 'inventory/dmg_inv.html'

def get_queryset(self):
    status = get_object_or_404(DMG_New_Inv, status__iexact=self.args[0])
    return DMG_New_Inv.objects.filter(status__iexact=status)

内容:

{% block content %}

<div id="content">

<table cellspacing="3" cellpadding="3">
    <tr align="center">
        <th>Model</th><th>Serial Number</th><th>Date In</th><th>Date Out</th><th>Status</th><th>Company</th><th>Notes</th>
    </tr>
    {% for dmg in dmg_new_status %}

    <tr align="center">
        <td>{{ dmg.model_num }}</td>
        <td>{{ dmg.serial_num }}</td>
        <td>{{ dmg.date_in }}</td>
        <td>{{ dmg.date_out }}</td>
        <td>{{ dmg.status }}</td>
        <td> {{ dmg.company }}</td>
        <td> {{ dmg.notes }}</td>
    </tr>
    {% empty %}
    No DMG's in this list
    {% endfor %}
</table>

{% 结束 block %}

网址:

(r'^inventory/dmg/(\w+)/$', dmg_new_status.as_view()), #status page

我确定这不是路径问题,因为我添加了空选项,并且它显示表标题但没有记录。如果我必须猜测并且我正在猜测,我不会返回任何内容,因此数组为空。我不知道如何进一步解决这个问题。我打开一个导入所有内容的控制台并以这种方式运行 query_set 函数,但什么也没得到,这就是为什么我相信错误就在那里。

谢谢

最佳答案

看来您在 get_queryset(self) 中遇到了问题... 第一行获取 DMG_New_Inv 对象,但将其分配给变量 status。

最后一行不应该是这样的吗?

return DMG_New_Inv.objects.filter(status__iexact=status.status)

(您可能还想使用与“status”不同的变量)

关于python - 记录未显示在模板中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13650986/

相关文章:

python - 如何使用 rmtree() 删除文件夹和文件

Django:在模板中测试 url 正则表达式

python - 从基于类的通用 View 手动获取响应

python - Django 教程 : Generic Views. 属性错误

python - Mayavi (Python 3.X) Linux 的替代品

python - 通过 if 语句进行条件字典查找的问题

python - 如何在 python 脚本中将需求安装到任意 virtualenv ?

python - Django模型保存值的方法

python - 从 django.core.management.base 导入 NoArgsCommand,CommandError ImportError : cannot import name 'NoArgsCommand'

python - 如果我们使用 Django 通用 View ,如何发送成功消息