Запишите URL в переменную в представлении Django

Я хочу поместить ссылку внутрь переменной (в View Django). Но я получаю ошибку. В разделе slug (slug =% slug), Python путает % url с %u!

Ошибка: формат %u: требуется число, а не строка

Я использую библиотеку Folium и хочу поместить ссылку во всплывающее окно. Поэтому я не могу использовать обычный режим и должен использовать другой метод.

for i in range(10):
    slug=i
    url = Template(
    """
    <!DOCTYPE html>
                <html>
                <body>
                    <a href="{% url 'test' slug= %slug %}" target="_blank" style=" text-align: 
   right; ">Mor Info</a>
                </body>
                </html>
    """%slug).render(Context({}))



popup = folium.features.GeoJsonPopup(
            fields=["name"],
            aliases=[f'{url}'],
            labels=True,
            localize=True,
            style="background-color: yellow;")

Вы уже передали пустой контекст, используйте его вместо форматирования строки.

for i in range(10):
    slug=i
    url = Template(
    """
    <!DOCTYPE html>
                <html>
                <body>
                    <a href="{% url 'test' slug=slug %}" target="_blank" style=" text-align: 
   right; ">Mor Info</a>
                </body>
                </html>
    """).render(Context({'slug': slug}))


   popup = folium.features.GeoJsonPopup(
            fields=["name"],
            aliases=[f'{url}'],
            labels=True,
            localize=True,
            style="background-color: yellow;")

Или просто напишите %s, вместо %slug, вы смешиваете вещи, я думаю.

print("%s" % "1")
print("%(bla)s" % {'bla':1})  # close to what you're attempting.
foo=1
print("{bla}".format(bla=1))
print(f"{foo}")

All print '1'.

Вернуться на верх