2016-12-02 5 views
1

Im Code verbinde ich mich mit meiner Datenbank und erstelle eine Reihe von Links. Ich befolge das Tutorial hier: https://www.youtube.com/watch?v=b0d09mYsORsdjango type error kann str und deferred Attributobjekte nicht verketten

mit dem Code wie es ist, kann der Lehrer den Code ausführen. Ich bin nicht.

Ich bin nicht sicher, was ein verzögertes Objekt ist und was das Problem sein kann. Ich habe die Dokumente eine Zeit lang gelesen und bitte um Hilfe, während ich weiter dränge.

Der Code:

def index(request): 
    allAlbums = Album.objects.all() 
    html = '' 
    for album in allAlbums: 
     url = '/music/' + str(album.id) + '/' 
     html += '<a href ="' + url + '">' + Album.albumTitle + '</a><br>' 
    return HttpResponse(html) 

wenn ich versuche, und warf das Album.albumTitle Attribut als String, erhalte ich Null Inhalt.

+1

Sie sollten 'Album.albumTitle' zu' album.albumTitle' –

Antwort

3

Album in Album.albumTitle klein geschrieben werden soll, oder auch die Klasse zugreifen, und nicht die spezifische Instanz, die Sie wollen.

Corrected Code:

def index(request): 
    allAlbums = Album.objects.all() 
    html = '' 
    for album in allAlbums: 
    url = '/music/' + str(album.id) + '/' 
    html += '<a href ="' + url + '">' + album.albumTitle + '</a><br>' 
    return HttpResponse(html) 
+1

hahahaha du verarschst mich natürlich! der Kleinbuchstabe a. die verdammte Albumvariable nicht die eigentliche Tischklasse. Ich werde gehen schwer trinken während Twinkies essen und weinen! –

+0

Ha kein Problem, wir haben alle diesen Fehler gemacht;) Und wenn die Antworten für dich auf SO funktionieren, wenn du eine Frage stellst, klicke auf den grünen Häkchenknopf unter der Abstimmung auf der linken Seite - hilft dir, die richtige Antwort für zukünftige Benutzer zu finden. Viel Glück! – Hybrid

+1

Ja, ich muss noch eine Minute warten und dann kann ich Ihnen die Punkte geben. –

-1

Verwenden Sie Ihre gleiche Technik wie die Linie darüber. ändern:

html += '<a href ="' + url + '">' + Album.albumTitle + '</a><br>' 

zu:

html += '<a href ="' + url + '">' + str(Album.albumTitle) + '</a><br>' 
+0

ändern sehe ich versuchte, das, und wenn das passiert, bekomme ich eine weiße Seite ohne Inhalt dargestellt. Das könnte daran liegen, dass mein HTML-Code ungültig war, aber vielleicht nicht. –

Verwandte Themen