Pandas Table mit Link zu HTML: Link wird falsch gerendert
Verfasst: Mittwoch 15. März 2017, 14:24
Hallo,
Ich möchte in eine Zelle einer Pandas Tabelle einen gewöhnlichen HTML-Link einfügen, die Tabelle anschließend zu HTML rendern und in einem Django Template anzeigen lassen. Der Link ist ein Querystring. Der folgende Code funktioniert grundsätzlich, aber der HTML-Query-String wird nicht korrekt gerendert. Ich versuche schon einen Tag lang herauszufinden, wie man den Link im Python Code konstruieren muß, damit im HTML ein gültiger Link rauskommt. Im HTML-Quellcode fehlt hier immer ein Teil des Links und der schließende </a> Tag. Warum?
Quellcode-Ergebis: http://imgur.com/a/o95mZ
views.py
test.html (template)
[codebox=html5 file=Unbenannt.html]<!DOCTYPE html>
<html>
<head></head>
<body>
{% autoescape off %}
{{ table }}
{% endautoescape %}
</body>
</html>[/code]
Das Codebeispiel ist natürlich wieder auf ein Minimum reduziert, um das Problem darzustellen. Später soll eine riesige Tabelle mit tausenden Links generiert werden.
Ich möchte in eine Zelle einer Pandas Tabelle einen gewöhnlichen HTML-Link einfügen, die Tabelle anschließend zu HTML rendern und in einem Django Template anzeigen lassen. Der Link ist ein Querystring. Der folgende Code funktioniert grundsätzlich, aber der HTML-Query-String wird nicht korrekt gerendert. Ich versuche schon einen Tag lang herauszufinden, wie man den Link im Python Code konstruieren muß, damit im HTML ein gültiger Link rauskommt. Im HTML-Quellcode fehlt hier immer ein Teil des Links und der schließende </a> Tag. Warum?
Quellcode-Ergebis: http://imgur.com/a/o95mZ
views.py
Code: Alles auswählen
def test(request):
table = pd.DataFrame({'Link': ['']})
# Parameter, die in den Link eingebaut werden
num1 = '12345bla'
num2 = 'bla67890'
# Hier wird der Link gebaut
link = f'<a href="/pdf/?number={num1}&mdate={num2}">PDF</a>'
# Das Komische: Mit nur einem Parameter geht es.
# link = f'<a href="/pdf/?number={num1}">PDF</a>'
# Hier wird er in die Tabelle eingesetzt
table.set_value(index=0, col='Link', value=link)
# Und hier wird die Tabelle zu HTML gerendert, aber mit nem nicht funktionierenden Link. Warum?
htmltable = table.to_html(index=False, border=1, justify='left', escape=False)
return render(request, 'test.html', {'table': htmltable})
[codebox=html5 file=Unbenannt.html]<!DOCTYPE html>
<html>
<head></head>
<body>
{% autoescape off %}
{{ table }}
{% endautoescape %}
</body>
</html>[/code]
Das Codebeispiel ist natürlich wieder auf ein Minimum reduziert, um das Problem darzustellen. Später soll eine riesige Tabelle mit tausenden Links generiert werden.