2016-10-13 1 views
1

Ich will mehr Räume zu __str__ Methode hinzufügen, aber Methode Räume abgeschnitten 1.Wie kann mehr Platz in der `__str__` Methode des Django Modells hinzugefügt werden?

Zum Beispiel:

class Spam(models.Model): 
    foo = models.IntegerField() 
    bar = models.IntegerField() 

    def __str__(self): 
     return 'more spaces {}   {}!'.format(self.foo, self.bar) 

Dieser Ausgang in Django Admin: more spaces 1 2

Ich möchte: more spaces 1 2

Wie geht das?

+3

Die Räume gibt es, aber Web-Browser zeigt nur jedes Leerzeichen in HTML als einen einzigen Raum. – RemcoGerlich

+1

Die Räume werden höchstwahrscheinlich nicht von Ihrem Browser gerendert. So definiert es der HTML-Standard. –

Antwort

0

Wenn Sie die Druckmethode verwenden, wird OK gedruckt.

Ich nehme an, Sie haben ein Problem mit HTML? Ersetzen Sie Leerzeichen mit   (aber dann sieht es aus wie Mist in der Shell) oder versuchen, eine explizite Darstellung in Admin ...

Oder Sie könnten versuchen, die Zeichenfolge in dem <pre> Tag Einwickeln

0

Ich bin nicht vertraut mit Django, aber Sie überprüfen die Ergebnisse auf der Webseite in der Tat.

So vollständige Antwort für Ihre Frage wird: Sie sollten spezielle HTML-Symbole für HTML-Seite verwenden, um Ihren zweiten Teil des Textes einzurücken. Sie können spezielle Symbole hier überprüfen: http://www.wikihow.com/Insert-Spaces-in-HTML

verwenden ‚& nbsp‘ können Sie tun:

def __str__(self): 
    space_sym = "&nbsp"*10 # hardcode magic-number of indent spaces 
    return 'more spaces {}{}{}!'.format(self.foo, space_sym, self.bar) 
+1

Dies ist eine partielle Antwort: Django wird standardmäßig ausgeblendet. Daher müssen Sie das Schablonen-Tag "| safe" in der Vorlage hinzufügen, damit diese Leerzeichen nicht maskiert werden – brianpck

Verwandte Themen