【问题标题】:Django returning incorrect attributeDjango返回不正确的属性
【发布时间】:2017-01-31 17:03:17
【问题描述】:

我试图让 Django 在主页/索引页面上显示当前在开发数据库中的所有记录的链接列表。

我的views.py 代码如下:

from django.http import HttpResponse
from .models import GvData


def index(request):
    all_geneva_data = GvData.objects.all()
    html = ''

    for data in all_geneva_data:
        url = '/geneva/' +str(GvData.id) + '/'
        html += '<a href="' + url + '">title</a><br>'
    return HttpResponse(html)

我的数据库中已经有一些示例记录,并且我已通过使用 shell 确认每条记录都有一个 id 并且可以通过 model.objects.filter(id='#') 定位。

此代码成功创建链接,但链接返回页面未找到错误。不是放置记录 id 的整数值,而是放置在 URL 中的是:

%3Cdjango.db.models.query_utils.DeferredAttribute%20object%20at%200x0452BF10%3E

为什么我得到这个而不是 id 的 int 值转换为 url 模式中的字符串?

【问题讨论】:

    标签: python django


    【解决方案1】:

    你引用的是对象模型而不是对象实例

       for data in all_geneva_data:
                url = '/geneva/' +str(data.id) + '/'
    

    【讨论】:

    • 做到了。非常清晰简洁的回复。我没有注意到是这种情况。
    猜你喜欢
    • 2017-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-21
    • 2018-02-15
    • 2015-01-15
    相关资源
    最近更新 更多