2017-07-25 131 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

相關問題