2010-08-04 5 views
1

Si je veux insérer une variable% s dans cedjango format de chaîne

<p><img src= %s alt="tetris"/></p> 

J'ai le problème que si je l'utilise "%s", il reconnaît l'habitude comme le placholder est. Mais s'il suffit d'utiliser %s il ne se liera pas à mon image.

Y a-t-il un moyen de contourner cela? J'ai essayé d'insérer l'URL qui est insérée là comme ceci dans la base de données ''/url/''. Mais cela ne fera pas l'affaire non plus. Des suggestions?

@thomas:

from django.http import HttpResponse 
from django.contrib.auth.models import User 
from favorites.models import * 

def main_page_favorites(request): 
    title = Favorite.objects.get(id=1).title.upper() 
    email = User.objects.get(username='Me').email 
    image = Hyperlink.objects.get(id=3).url 
    output = ''' 
     <html> 
      <head> 
       <title> 
        Connecting to the model 
       </title> 
      </head> 
      <body> 
       <h1> 
       Connecting to the model 
       </h1> 
       We will use this model to connect to the model! 

       <p>Here is the title of the first favorite: %s</p> 
           <p>Here is your email: %s </p> 
           <p>Here is the url: %s </p> 
           <p>Here is the url embedded in an image: <p><img src= %s alt="tetris"/></p> 

      </body> 
     </html>''' % ( 
      title, email, image, image 
     ) 
    return HttpResponse(output) 
+0

Pouvez-vous donner un exemple de code? ''

tetris

'%" foo.jpg "' fonctionne bien. –

+0

Désolé. J'ai oublié de dire que je récupère cette variable à partir d'une base de données. % s est remplacé par une image. Et l'image est définie comme ceci: image = Hyperlink.objects.get (id = 3) .url – MacPython

+1

Ne devrait toujours pas être un problème. Pouvez-vous coller le code exact de votre script? –

Répondre

1

Peut-être que vous devriez regarder dans les modèles qui sont inclus avec django. Ils font pour le code beaucoup plus facilement maintenu.

from django.shortcuts import render_to_response 
from django.template import RequestContext 

def view(request): 
    user = request.user 
    return render_to_response('template.html', { 
     'user':user, 
    }, context_instance=RequestContext(request) 

Et puis dans votre fichier template.html dans votre répertoire templates:

<html> 
    <!-- snip --> 
    <body> 
    Here is your email: {{ user.email }} 
    </body> 
</html> 

Bonus: votre éditeur de texte sera probablement mettre en évidence votre syntaxe HTML.

+0

Merci! Je connais le système de template. Mais puisque j'apprends à écrire dans une base de données, il vaut mieux commencer par les bases. – MacPython