2016-07-01 16 views
0

Also ich habe zwei Modelle:django Get Fremdschlüssel Modell in Sicht und zeigt in html

class UserMeasurements(models.Model): 
    user = models.CharField(max_length=20) 
    time = models.DateTimeField(blank=True, null=True) 
    set = models.ForeignKey(PhotoSets, models.DO_NOTHING) 

    class Meta: 
     managed = False 
     db_table = 'user_measurements' 

class PhotoSets(models.Model): 
    image_dir = models.CharField(max_length=200) 
    machine = models.ForeignKey(Machine, models.DO_NOTHING) 
    set_id = models.AutoField(primary_key=True) 
    photo_taken_time = models.DateTimeField(blank=True, null=True) 

    class Meta: 
     managed = False 
     db_table = 'photo_sets' 

Im view.py ich habe:

def Main(request): 
    measurement_list = UserMeasurements.objects.order_by('-time') 
    photo_set_list = PhotoSets.objects.all() 
    a = measurement_list.set.get_field('PhotoSets').rel.to 
    //this is where I try to get the related models 
    print str(a) 
    return render(request, 'main.html', {'measurement_list': measurement_list}) 

Ich versuche, die image_dir zu zeigen, auf der Webseite mit jeder Benutzermessung. Ich überprüfte andere stackoverflow Fragen. Aber ich kann es immer noch nicht herausfinden.

Vielen Dank im Voraus.

Antwort

1

Ich weiß nicht, was Sie mit dieser Variablen a versuchen, aber Sie müssen nichts davon tun. Sie sollten nur den Fremdschlüssel folgen, wenn Sie die Ausgabe jede Messung, zB in der Vorlage:

{% for measurement in measurement_list %} 
    User: {{ measurement.user }} 
    Time: {{ measurement.time }} 
    Image dir: {{ measurement.set.image_dir }} 
{% endfor %} 

Beachten Sie, dass dies in der Dokumentation ganz ausführlich erklärt wird, vor allem im Tutorial, in dem sie am Beispiel der Umfrage Fragen und Entscheidungen verwendet .

+0

Dank! Es funktioniert, Django ist so schick! – KKlalala

+0

Können Sie die Funktion .rel.to ein wenig erklären? Wann ist es an der Zeit, es zu benutzen? (ein Link ist auch in Ordnung) danke – KKlalala

+0

Sie sollten es nicht wirklich verwenden; So kann Django die Beziehungen intern nachverfolgen. Wenn Sie ein neues Datenbank-Back-End oder eine neue Art von Modellschnittstelle erstellen, möchten Sie diese möglicherweise verwenden, ansonsten jedoch nicht. –

1

Würden Sie es versuchen in Ihrem main.html

{% for item in measurement_list %} 

    {{ item.image_dir }} 

{% endfor %} 
+0

danke! Sorry, dass ich Ihnen eine Stimme geben kann, da ich nur zehn Punkte habe :( – KKlalala

+0

Kein Problem. Beste. – dmitryro

Verwandte Themen