gpt4 book ai didi

python - 使用 args 的 get_absolute_url() 的 Django 模板不起作用

转载 作者:行者123 更新时间:2023-12-01 06:37:15 24 4
gpt4 key购买 nike

在我的模板中使用带参数的 get_absolute_url() 时遇到问题(也许我在模板方面做得不正确)

我不断收到错误消息,提示person_id is not Defined

我有一个如下所示的简单模型:

class Course(models.Model):
year = models.ForeignKey(Year, on_delete=models.PROTECT)
name = models.CharField(max_length=50)
short_name = models.CharField(max_length=50)
created = models.DateTimeField(auto_now=False, auto_now_add=True)
last_updated = models.DateTimeField(auto_now=True, auto_now_add=False)

它的 get_absolute_url 看起来像这样:

    def get_absolute_url(self):
"""Return absolute url for Course."""
return reverse(
"view_course", args=[
person_id,
location_id,
str(self.id)
]
)

我的 URL 如下所示:

    path(
"<person_id>/locations/<location_id>/course/<pk>/",
views.CourseDetailView.as_view(),
name="view_course",
),

在我的模板中,我尝试了几种不同的方法来显示它,目前它看起来像这样:

    {% for section in sections %}
<a id="course{{section.course.id}}" href="{{person.id}}/locations/{{location.id}}/course/{{ section.course.get_absolute_url }}" class="card-link location-course-link">{{ location.person }}</a>{{section.course.short_name}}
{% endfor %}

我也尝试过:href="{{section.course.get_absolute_url }}"

还尝试过:href="{{section.course.get_absolute_url person.id location.id }}"

虽然所有数据都是正确的(网址按照模板中的预期显示为 1/locations/3/course/5/ - 单击时仍然会出现该错误。

最佳答案

不能为此使用get_absolute_urlget_absolute_url method [Django-doc]目的是:

Define a get_absolute_url() method to tell Django how to calculate the canonical URL for an object. To callers, this method should appear to return a string that can be used to refer to the object over HTTP.

这意味着 url 完全由对象决定(通过它的字段,或通过相关对象的字段)。但据我所知,这里无法派生 person_id

你用什么{% url … } template tag [Django-doc]计算反向网址:

<a id="course{{section.course.id}}" href="<b>{% url 'view_course' person.id location.id section.course.id %}</b>" class="card-link location-course-link">{{ location.person }}</a>

关于python - 使用 args 的 get_absolute_url() 的 Django 模板不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59612728/

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