2011-07-01 2 views
0

Je suis juste commencé à utiliser Django donc mon quetion pourrait être stupide :)URL absolue dans le modèle Django

J'ai une URL vers un site différent dans mon modèle (TextField, « othersite.com »). Je suis en train de l'afficher dans le modèle comme ça <a href="{{ article.url }}" > Mais Django délicat me donne <a href="http://mysite.com/articles/othersite.com" >

  1. Que dois-je faire pour obtenir <a href="othersite.com" >?
  2. Désolé pour ma langue, si elle a des erreurs :)

Répondre

4

Votre navigateur est saisie du texte supplémentaire, au lieu de Django. Cela se produit en l'absence d'une URL complète pour éviter un comportement inattendu.

Vous pouvez contourner le problème en fixant vos données ou en modifiant votre modèle comme celui-ci:

<a href="http://{{ article.url }}" > 
+0

fonctionne très bien! Merci beaucoup! :) – Dmitriy

0

Si tous les urls doivent être absolue, cela pourrait être résolu en utilisant une étiquette de modèle personnalisé et filtre .

@register.filter 
@stringfilter 
def absoluteurl(url): 
    if "http" not in url: 
     return 'http://%s' % url 
    else: 
     return url 

alors vous pouvez simplement <a href="{{ article.url|absoluteurl }}" >

https://docs.djangoproject.com/en/1.11/howto/custom-template-tags/