django在视图中获取外键模型并以html显示

时间:2016-07-01 20:57:47

标签: python django foreign-keys

所以我有两个模特:

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'

在view.py中我有:

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})

我正在尝试使用每个用户测量在网页中显示image_dir。 我检查了其他stackoverflow问题。但我仍然无法弄明白。

提前致谢。

2 个答案:

答案 0 :(得分:2)

我不知道您尝试使用a变量做什么,但您不需要执行此操作。输出每个测量值时,您应该只需按下外键,例如在模板中:

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

请注意,这在文档中有相当全面的解释,特别是在他们使用民意调查问题和选择示例的教程中。

答案 1 :(得分:2)

您可以在main.html中试一试吗

{% for item in measurement_list %}

   {{ item.image_dir }}  

{% endfor %}