Si uno necesita poner links en en la herramienta Administración de Django, no funciona así no más pues si uno hace algo como esto:
def get_link(self):
link = self.sample_url
if link:
return '<a href="http://www.serversample.cl/">click here</a>'
return ''
class Admin:
list_display = (...,'get_model_link')
Django Admin escapa los textos, así que el resultado en el browser es esto:
<a href="http://www.serversample.cl/">click here</a>
Para que Django Admin no escape los textos hay que hacer lo siguiente:
def get_link(self):
link = self.sample_url
if link:
return '<a href="http://www.serversample.cl/">click here</a>'
return ''
get_link.allow_tags = True
Y agregar el campo al list_display en la clase Admin:
class Admin:
list_display = (...,'get_model_link')
Con esto no sólo se pueden crear links, sino que se puede agregar cualquier tag que se necesite (scripts, color de texto, formato texto, divs ... etc...)