2016-04-18 4 views
0

In models.py erstellen:django-Python mehrdimensionales Array in views.py

class PUser(models.Model): 
     phone = models.TextField(blank=True, null=True) 
     email = models.TextField() 
     txt = models.TextField(blank=True, null=True) 

I mehrdimensionales Array für das erstellt werden soll.

Denn jetzt ist es das, was ich in der Funktion in views.py haben:

def main(request): 
    users = [] 
    for i in range (5): 
     for a in range(3): 
      users[i][a] = PUser.objects.all() 
return render(request, 'main.html', {'users': users}) 

Aber ich weiß, es ist nicht richtig, es funktioniert nicht.

Wie soll ich es bearbeiten?

Und wie sollte der Code in der Main.html sein?

Ich dachte über etwas wie {{ users[2][3] }} zum Beispiel nach. Wie sollte der Code sein? (Ich habe dieselben Fragen gelesen, aber für mich war nicht hilfreich)

Antwort

3

Seit PUser.objects.all() gibt einen Array von PUser Objekt, man muss nur schreiben:

def main(request): 
    users = PUsers.objects.all() 
    return render(request, 'main.html', {'users': users}) 

und in der Vorlage, iterieren auf users Array:

{% for user in users %} 
    {{ user.phone }} 
    {{ user.email }} 
    {{ user.txt }} 
{% endfor %} 

Wenn Sie wollen einen bestimmten Benutzer drucken, können Sie durch seinen Index Angabe:

{{ users[3].phone }} 
{{ users[3].email }} 
{{ users[3].txt }} 
# or 
{{ users.3.phone }} 
{{ users.3.email }} 
{{ users.3.txt }} 
+0

Aber wie ich bemerkt habe, möchte ich etwas wie '{{users [2] [3]}}' verwenden. Ich möchte den gewünschten Index auswählen und ihn an verschiedenen Stellen in meinen Dateicode einfügen. Ich möchte nicht alle nacheinander an einem bestimmten Ort drucken, also nicht "For-Schleife". Ich möchte auswählen können, welcher Index an welcher Stelle im Code gedruckt werden soll. – niloofar

+0

Ich füge ein Beispiel, um einen bestimmten Benutzer zu drucken :) –

+0

Mit '{{users [3] .phone}}' Ich konfrontiert mit diesem Fehler: 'Parsing den Rest: '[3] .phone' von 'Benutzer [3] .phone'' – niloofar