【问题标题】:DetailView not showing dataDetailView 不显示数据
【发布时间】:2016-03-23 06:13:20
【问题描述】:

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

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

我正在构建一个密码保险箱。 ListView 列出了所有保存的密码,DetailView 是每个密码的查看/编辑页面。是的,我意识到实际上将密码保险箱放在互联网上是一个糟糕的主意,这只是一个测试项目:)

我的PasswordSafe 班级:

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 %}

但是,当我尝试在我的 Detailview(passwordSafe.html 模板)中使用 passwordSafe 数据时,什么也没有出现。我使用以下代码尝试更改标题:

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

这应该显示类似“密码安全 | 编辑 Google 密码”的标题,但 passwordSafe.pwWebsite 会返回任何内容。我在尝试从此模板中引用 passwordSafe 时做错了什么?我知道我没有像使用 ListView 那样通过查询集,但我不确定这是否是问题的一部分。

【问题讨论】:

    标签: python django listview detailview


    【解决方案1】:

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

    {{ passwordsafe.pwWebsite }} 
    

    【讨论】:

      猜你喜欢
      • 2013-08-22
      • 2021-03-24
      • 2020-04-30
      • 2014-10-10
      • 1970-01-01
      • 1970-01-01
      • 2018-10-21
      • 2019-09-05
      • 2013-06-25
      相关资源
      最近更新 更多