J'ai une interface d'administration django et dans la liste des modèles, je veux une colonne personnalisée qui sera un lien hypertexte en utilisant l'une des valeurs des champs. Fondamentalement, l'un des champs des modèles est une url et je voudrais que la colonne ait cette URL dans un lien hypertexte cliquable. Ce lien devra être précédé d'une URL supplémentaire comme étant un chemin relatif dans le champ du modèle.Comment ajouter une colonne personnalisée avec un lien hypertexte dans l'interface d'administration django?
Répondre
Définissez une méthode dans votre classe ModelAdmin et définissez son attribut allow_tags
sur True
. Cela permettra à la méthode de renvoyer le code HTML non échappé pour l'affichage dans la colonne. Puis ajoutez-le comme une entrée dans l'attribut ModelAdmin.list_display.
Exemple:
class YourModelAdmin(admin.ModelAdmin):
list_display = ('my_url_field',)
def my_url_field(self, obj):
return '<a href="%s%s">%s</a>' % ('http://url-to-prepend.com/', obj.url_field, obj.url_field)
my_url_field.allow_tags = True
my_url_field.short_description = 'Column description'
Voir la documentation ModelAdmin.list_display pour plus de détails.
J'ai découvert l'autre jour que vous n'avez pas vraiment besoin de la balise 'a', car Django admin transformera automatiquement l'URL en un lien hypertexte. Je ne suis pas sur mon PC de travail, donc je peux me tromper. Dans mon cas, je n'ai pas besoin de définir 'allow_tags'. J'ai également créé une fonction 'get_url()' sur mon modèle, par opposition à mon modèle d'administration - mais c'est assez trivial. Cependant, votre chemin est le meilleur si nous voulons ouvrir le lien dans une nouvelle fenêtre avec 'target = _blank' - Espérons que cela soit utile. –
Utilisez l'utilitaire format_html
. Cela permettra d'échapper tout code HTML de paramètres et marquer la chaîne comme sûr à utiliser dans les modèles. L'attribut de méthode allow_tags
a été abandonné dans Django 1.9.
from django.utils.html import format_html
class MyModelAdmin(admin.ModelAdmin):
list_display = ['show_url', ...]
...
def show_url(self, obj):
return format_html("<a href='http://pre.com{0}'>{0}</a>", obj.url)
Maintenant vos utilisateurs admin sont en sécurité, même dans le cas de:
url == '<script>eval(...);</script>'
Voir the documentation pour plus d'informations.
- 1. Comment ajouter un lien hypertexte à une colonne gridview dynamique
- 2. chargement gridview avec la colonne lien hypertexte
- 3. C# .NET Comment ajouter un lien hypertexte dans un ReportViewer
- 4. Ajouter une URL de lien hypertexte absolu
- 5. Comment ajouter un lien hypertexte dans mon application?
- 6. Comment ajouter un lien hypertexte dans l'application iPhone?
- 7. Qt - ajouter un lien hypertexte à une boîte de dialogue
- 8. Ajouter une classe "active" à un lien hypertexte utilisant PHP
- 9. Comment ajouter une colonne de lien hypertexte dans un UltraWebgrid qui me redirigera vers une fenêtre contextuelle
- 10. comment créer un lien hypertexte dans piechart
- 11. Lien hypertexte dans un Datalist
- 12. Comment concaténer une chaîne dans la fonction de lien hypertexte
- 13. Comment activer un lien hypertexte?
- 14. SharePoint lien élément lien hypertexte
- 15. Comment créer un lien hypertexte dans iOS?
- 16. Lien hypertexte dans une zone de texte
- 17. Comment ajouter une colonne personnalisée à une grille MvcContrib?
- 18. Comment inclure une variable javascript dans un lien hypertexte?
- 19. delphi excel Lien hypertexte dans une cellule
- 20. lien hypertexte dans une nouvelle fenêtre C#
- 21. Comment ajouter des informations supplémentaires au lien hypertexte?
- 22. comment ajouter un attribut à un lien hypertexte dans un gridview
- 23. Séparer un lien hypertexte HTML
- 24. Un lien hypertexte dans plusieurs endroits
- 25. Comment créer dynamiquement un lien hypertexte qualifié vers une ressource?
- 26. Comment ajouter une valeur de lien hypertexte avec $ sign in C# Infragistics ultragrid?
- 27. Comment faire un: hover, gradient de couleur avec lien hypertexte?
- 28. Ajouter une balise span au texte dans un lien hypertexte, en utilisant jQuery
- 29. Comment renvoyer un lien hypertexte contenant une variable?
- 30. Comment puis-je ajouter un lien hypertexte à une boîte de dialogue JFace
Copie possible de [Comment ajouter des liens cliquables à un champ dans l'admin Django?] (Http://stackoverflow.com/questions/1949248/how-to-add-clickable-links-to-a-field-in -django-admin) – Louis