如何在django中从一个应用程序访问多个图像URL到另一个应用程序

时间:2017-09-13 17:18:21

标签: django

我的项目中有两个应用程序。

他们是:

  

博客应用

     

帐户应用

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)

我知道这是疯狂的: - /

2 个答案:

答案 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 %}