DetailView 不显示数据

DetailView not showing data

我正在尝试显示 ListView 个项目,单击这些项目会打开该项目的相应 DetailView。在 Django 中这是一件非常简单的事情,但我 运行 遇到了一些麻烦。

我已经成功创建了一个ListView,但是我无法让DetailView显示每个项目的信息。

我正在构建一个密码保险箱。 ListView列出所有保存的密码,DetailView是每个密码的view/edit页。是的,我意识到实际上将密码安全地放在互联网上是一个糟糕的主意,它只是一个测试项目:)

我的PasswordSafeclass:

class PasswordSafe(models.Model):
    user = models.OneToOneField(User)

    pwWebsite = models.CharField(max_length=30)
    pwUsername = models.CharField(max_length=30)
    pwEmail = models.CharField(max_length=30)
    pwPassword = models.CharField(max_length=30)

    def __unicode__(self):              # __unicode__ on Python 2, __str__ on Python 3
        return self.pwWebsite

User.passwordSafe = property(lambda u: PasswordSafe.objects.get_or_create(user=u)[0])

我的urls.py:

from django.conf.urls import patterns, include, url
from django.views.generic import ListView, DetailView
from models import PasswordSafe

urlpatterns = [
    url(r'^passwordSafe/$', ListView.as_view(queryset=PasswordSafe.objects.all().order_by('-pwWebsite')[:10], template_name = 'userprofile/passwordSafe_list.html')),
    url(r'^passwordSafe/(?P<pk>\d+)/$', DetailView.as_view(model=PasswordSafe, template_name='userprofile/passwordSafe.html')),
    ]

我在我的 ListView 模板 (passwordSafe_list.html) 中成功使用了以下代码:

{% for passwordSafe in object_list %}

    <h2><a href="/accounts/passwordSafe/{{passwordSafe.id}}">{{ passwordSafe.pwWebsite }}</a></h2>

{% endfor %}

但是,当我尝试在 DetailviewpasswordSafe.html 模板)中使用 passwordSafe 数据时,没有显示任何内容。我使用以下代码尝试更改标题:

<title>{% block title %} | Edit {{ passwordSafe.pwWebsite }} Password{% endblock %}</title>

这应该显示类似 "Password Safe | Edit Google Password" 的标题,但 passwordSafe.pwWebsite returns 什么也没有。我在尝试从此模板引用 passwordSafe 时做错了什么吗?我知道我没有像 ListView 那样通过查询集,但我不确定这是否是问题的一部分。

DetailView中,Django uses the model name in lowercase, by default,如果你还没有设置context_object_name

{{ passwordsafe.pwWebsite }}