2017-09-13 114 views
0

我的项目中有两个应用程序。如何从一个应用程序访问多个图像的URL到Django的另一个应用程序

它们是:

博客应用

帐户应用

accounts应用程序包含用户配置文件,如图片,生物,出生日期等,在博客应用程序的每个用户都有自己的拥有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

图像存储在帐户应用程序---> models.py - >图像= models.ImageField(upload_to ='profile_image',空白=真) – Akash

+0

我想显示用户在博客页面中评论的图像 – Akash

回答

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 %} 
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 
相关问题