【发布时间】:2021-12-03 12:16:16
【问题描述】:
我正在尝试在下面的 f 字符串中添加一个链接:
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 字符串中输入链接吗?有什么问题可以问我。
这是代码的上下文,正如你们中的一些人所问的那样,我有 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 放置位置的信息......谢谢。它是直接在视图中还是在视图中的消息对象中
-
感谢您的评论。我在问题中添加了 f 字符串的上下文。
-
代码对我来说看起来不错。您的代码中是否存在其他一些(意外损坏的)f 字符串的问题?检查与错误消息关联的行号。
-
顺便说一句,您可能希望返回
mark_safe( f"<td>...</td>"),这可能会解决您的下一个问题。只要它是安全的,就是这样。format_html在这种情况下通常更可取。 -
我实际上尝试了
<a href='somewhere' event.pk>,而不是上面写的括号,它没有错误。但是,当我尝试在网页中单击该链接时,该链接根本不起作用。
标签: python django django-models django-views django-templates