2017-07-25 147 views
0

如何获取django模型类BlogPageGalleryImage图像或外键或父母键的另一个值?Django如何获取模型中的值从另一个模型

class BlogPage(Page): 
    date = models.DateField("Дата публикации" , default=datetime.date.today ) 
    body = RichTextField(blank=True) 
    name = models.CharField(max_length=80, default='Лучший') 



class BlogPageGalleryImage(Orderable): 
    page = ParentalKey(BlogPage, related_name='gallery_images') 
    image = models.ForeignKey('wagtailimages.Image', on_delete=models.CASCADE, related_name='+') 
    caption = models.CharField(blank=True, max_length=250) 
    panels = [ 
     ImageChooserPanel('image'), 
     FieldPanel('caption'), 
    ] 

class Another(BlogPage): 
    page = ParentalKey(BlogPage, related_name='instagram_post') 
    Image = BlogPageGalleryImage.objects.get(BlogPageGalleryImage.) 
    caption = models.CharField(blank=True, max_length=250) 
    panels = [ 
     ImageChooserPanel('image'), 
     FieldPanel('caption'), 
    ] 
+0

你能更具体地回答你的问题吗? – zaidfazil

+0

如果您想在'Another'模型中将'Blog'从'BlogPageGalleryImage'中保存,那么您可以覆盖'save()'方法来实现这一点。 – Bijoy

+0

你想为Another.Image字段设置默认值吗?如果你举了一个你想如何使用它的例子,这将会很有帮助。 – swalladge

回答

1

看来你正在寻找访问您BlogPageAnother模板的博客页面图像。这可以通过将博客页面图像添加到渲染上下文来实现。要做到这一点的覆盖在get_context方法BlogPage

def get_context(self, request, *args, **kwargs): 
    context = super(BlogPage, self).get_context(
     request, *args, **kwargs 
    ) 
    context['images'] = BlogPageGalleryImage.objects.filter(
     page=self, 
    ) 
    return context 

这意味着,你现在可以在你的模板访问图像使用{{ images }}。因此,例如:

{% for i in images %} 
    <div class="image"> 
     {% image i.image %} 
     <p>{{ i.caption }}</p> 
    </div> 
{% endfor %} 
+0

的BlogPageGalleryImage谢谢,但不是在模板中,我认为要在模型中执行它>但似乎没有办法因为philisophy。在管理界面中如何做到这一点?在w I中我通常会注册意见,但​​在这里似乎还不够 – Mihail

+0

坏了,我一定误解了你的问题。您是否尝试在'BlogPage'和'Another'的''panel'定义中添加'InlinePanel('gallery_images')'? – Dekker

+0

是的,我尝试了,但我没有看到我的信息在数据库aftre fieds打开了页面。我想打开页面,看看其他外国模式的价值。我想我走错了路。 – Mihail

相关问题