如何在 f 字符串中添加 link?
How do you add a link in an f string?
我正在尝试在下面的 f 字符串中添加一个 link:
d += f'<li> {event.time} {event.teacher} {event.student} {event.status} </li>'
基本上,我希望它看起来像下面这样:
f'<li> <a href="{% url 'somewhere' event.pk %}"> {event.time} {event.teacher} {event.student} {event.status} </a> </li>'
但是,我在执行此操作时遇到以下错误:
SyntaxError: f-string: expecting '}'
你们知道如何在 f 字符串中输入 link 吗?有什么问题请问我。
这里是代码的上下文,我有一些人问的 f 字符串:
class Calendar(HTMLCalendar):
def __init__(self, year=None, month=None):
self.year = year
self.month = month
super(Calendar, self).__init__()
# formats a day as a td
# filter events by day
def formatday(self, day, events):
events_per_day = events.filter(date__day=day)
d = ''
if True:
for event in events_per_day:
d += f'<li> {event.time} {event.teacher} {event.student} {event.status} </li>'
if day != 0:
return f"<td><span class='date'>{day}</span><ul> {d} </ul></td>"
return '<td></td>'
顺便说一下,这些都在我的 utils.py 文件夹中。
f-string 不会评估 Django 模板标签,它只是将其视为花括号,但其中的内容恰好是一个无意义的表达式。
您可以利用 reverse(…)
[Django-doc] 执行 URL 模式解析:
from django.urls import <strong>reverse</strong>
f'<li> <a href="{ <strong>reverse("somewhere", args=(event.pk,))</strong> }"> {event.time} {event.teacher} {event.student} {event.status} </a> </li>'
您可以使用变量来实现相同的输出:-
url_endpoint = reverse("somewhere", args=(event.pk,))
f'<li> <a href="{url_endpoint}"> {event.time} {event.teacher} {event.student} {event.status} </a> </li>'
我正在尝试在下面的 f 字符串中添加一个 link:
d += f'<li> {event.time} {event.teacher} {event.student} {event.status} </li>'
基本上,我希望它看起来像下面这样:
f'<li> <a href="{% url 'somewhere' event.pk %}"> {event.time} {event.teacher} {event.student} {event.status} </a> </li>'
但是,我在执行此操作时遇到以下错误:
SyntaxError: f-string: expecting '}'
你们知道如何在 f 字符串中输入 link 吗?有什么问题请问我。
这里是代码的上下文,我有一些人问的 f 字符串:
class Calendar(HTMLCalendar):
def __init__(self, year=None, month=None):
self.year = year
self.month = month
super(Calendar, self).__init__()
# formats a day as a td
# filter events by day
def formatday(self, day, events):
events_per_day = events.filter(date__day=day)
d = ''
if True:
for event in events_per_day:
d += f'<li> {event.time} {event.teacher} {event.student} {event.status} </li>'
if day != 0:
return f"<td><span class='date'>{day}</span><ul> {d} </ul></td>"
return '<td></td>'
顺便说一下,这些都在我的 utils.py 文件夹中。
f-string 不会评估 Django 模板标签,它只是将其视为花括号,但其中的内容恰好是一个无意义的表达式。
您可以利用 reverse(…)
[Django-doc] 执行 URL 模式解析:
from django.urls import <strong>reverse</strong>
f'<li> <a href="{ <strong>reverse("somewhere", args=(event.pk,))</strong> }"> {event.time} {event.teacher} {event.student} {event.status} </a> </li>'
您可以使用变量来实现相同的输出:-
url_endpoint = reverse("somewhere", args=(event.pk,))
f'<li> <a href="{url_endpoint}"> {event.time} {event.teacher} {event.student} {event.status} </a> </li>'