gpt4 book ai didi

python - Django获取外键对象值

转载 作者:行者123 更新时间:2023-11-30 23:18:24 28 4
gpt4 key购买 nike

我编写了一个模型并保存了一些数据,但现在我不知道如何与外键模型一起查询对象。

这是我的models.py:

class Movie(models.Model):
link = models.URLField()
title = models.CharField(max_length=255, null=True)
title_en = models.CharField(max_length=255, null=True)

class MovieImage(models.Model):
movieimage = models.ForeignKey(Movie,null=True,blank=True)
img_link = models.URLField(max_length=255, null=True)

view.py:

def index(request):
obj = Movie.objects.all()
contacts = get_paginator(request, obj, 10)
return render_to_response("movie/index.html",
{'title': title ,'obj':obj,'contacts':contacts},
context_instance=RequestContext(request))

movie/index.html:

     {% for o in obj %}
<div class="col-md-12 item">
<p><h3>{{ o.title }}</h3></p>
<div class="pic">
{{ o.img_link }} <!--I want to show the img_link but don't know how to do this -->
</div>
</div>
{% endfor %}

我知道我可以使用 o.titleo.entitle 来获取值。但我不知道如何从那里获取外键模型中的值

最佳答案

首先 - 一些命名约定 - obj 是一个非常通用的名称,没有任何意义。使用电影之类的东西可能是个好主意。另外,如果模型名为 MovieImage,为什么会有一个名为 img_link 的字段?这有点重复,你不觉得吗?这样会更好:

#models.py
class MovieImage(models.Model):
movie = models.ForeignKey(Movie,null=True,blank=True)
src = models.URLField(max_length=255, null=True)

那么你可以这样做:

#views.py

def index(request):
movies = Movie.objects.all() # movies instead of obj
contacts = get_paginator(request, movies, 10)
return render(request, "movie/index.html",
{'title': title ,'movies':movies,'contacts':contacts})

最后,对于实际答案 - 相关对象的默认名称是 foo_set (在您的情况下,movieimage_set),您可以像这样迭代:

# html
{% for movie in movies %}
<div class="col-md-12 item">
<p><h3>{{ movie.title }}</h3></p>
<div class="pic">
{% for image in movie.movieimage_set.all %}
<img src="{{ image.src }}"> <!-- I am assuming you actually want to show the image, not just the link -->
{% endfor %}
</div>
</div>
{% endfor %}

附注您可能已经注意到,我将 View 中的 render_to_response 替换为 renderHere's why

关于python - Django获取外键对象值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26757073/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com