gpt4 book ai didi

Django:如何将对象/对象 id 传递给另一个模板

转载 作者:行者123 更新时间:2023-12-01 01:21:22 26 4
gpt4 key购买 nike

我是 Django Web 框架的新手。

我有一个显示所有对象列表的模板。我将所有单个对象列为链接(对象标题),单击该链接我想重定向到显示该特定对象的对象详细信息的另一个页面。
我能够列出对象,但无法将对象/对象 ID 转发到下一个模板以显示详细信息。

View .py

def list(request):
listings = listing.objects.all()
return render_to_response('/../templates/listings.html',{'listings':listings})

def detail(request, id):
#listing = listing.objects.filter(owner__vinumber__exact=vinumber)
return render_to_response('/../templates/listing_detail.html')

和模板为:
列表.html
{% for listing in object_list %}
<!--<li> {{ listing.title }} </li>-->
<a href="{{ listing.id }}">{{ listing.title}}</a><br>
{% endfor %}

详细信息.html
{{ id }}

最佳答案

您在 render_to_response 的字典中传递的变量是最终出现在模板中的变量。所以在 detail ,您需要添加类似 {'listing': MyModel.objects.get(id=vinumber)} 的内容,然后模板应该显示 {{ listing.id }} .但是如果ID不存在就会崩溃,所以最好使用 get_object_or_404 .

此外,您的模板会遍历 object_list但 View 传入 listings - 如果它当前正在工作,其中之一必须与您所说的不同......

此外,您应该使用 {% url %} tag和/或 get_absolute_url在你的模型上:而不是直接说 href="{{ listing.id }}" ,说类似 href="{% url listing-details listing.id %}" ,其中 listing-detailsurls.py 中 View 的名称.更好的是添加一个 get_absolute_url function到您的模型 the permalink decorator ;那么你可以直接说 href="{{ listing.get_absolute_url }}" ,这样可以更轻松地更改 URL 结构以使其看起来更好或使用其中的数据库 ID 以外的某些属性。

关于Django:如何将对象/对象 id 传递给另一个模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9013697/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com