我的项目中有两个应用程序。
他们是:
博客应用
帐户应用
在accounts
应用中包含用户个人资料,例如Images,Bio,DOB等,在博客应用中,每个用户都有自己的blog
页面,每个页面必须有comments
,因此任何用户都可以发表评论任何blog
。在评论部分,它会显示username
及其独特的个人资料URL
。现在我的问题是我无法加载他们的个人资料图片。
的 models.py
class comments(models.Model):
blogger= models.ForeignKey(blog,on_delete=models.CASCADE)
user = models.ForeignKey(User)
created = models.DateTimeField(auto_now_add=True)
comment = models.TextField()
def get_absolute_url(self):
return reverse('blog:comments',args = [ self.id])
views.py
commentz = comments.objects.filter(blogger= id).all().order_by('-created')[:10]
for pic in commentz:
image = UserProfile.objects.filter(user = pic.user)
我知道这是疯狂的: - /
答案 0 :(得分:0)
annotate
有助于查找relational
字段
from django.db.models import F
# include image field in queryset
commentz = comments.objects.annotate(image=F('user__image')).filter(blogger= id).all().order_by('-created')[:10]
# Access image
commentz[0].image
答案 1 :(得分:0)
我的问题解决了。当我们将图像从一个应用程序渲染到另一个应用程序时。我们需要使用绝对URL和内部超链接,我们必须调用模型名称。在我的情况下,模型名称是UserProfile
。
<a href="{% url 'accounts:view_profile' username=c.user %}"><img src="{{
c.user.userprofile.image.url }}"></a>
{% if class_comments %}
{% for c in class_comments %}
<div class="row">
<div class="col-lg-1 col-xs-6">
<div class="thumbnail">
<a href="{% url 'accounts:view_profile' username=c.user %}"><img class="img-responsive user-photo" src="{{ c.user.userprofile.image.url }}"></a>
{% endfor %}
{% endif %}