1

我有類似如下:額外的數據添加到選擇在Django管理

class Destination(models.Model): 
    name = models.CharField 
    picture = models.ImageField 

    def __unicode__(self): 
     return u"%s" % self.name 

class Vacation(models.Model): 
    destination = models.ForeignKey(Destination) 

當建立在我的Django管理界面,模型,我想我的目的地被顯示爲單選按鈕目的地名稱和目的地圖片。

我使用這樣顯示與目的地名稱單選按鈕自定義模板add_form是沒有問題的,但是包括畫面是困難的。

我想離開__unicode__(self)原來的樣子,我只需要在該管理視圖中的對象返回的圖片。另外我不想將對象內聯。

有關如何做到這一點的任何建議(包括如何將其納入模板)將是偉大的!

編輯:This SO post非常接近我所需要的,但我想訪問個人選擇數據,而不是從修改後的標籤解析它。

回答

0

這不是一個特定於管理員的答案,但我認爲它應該可以在管理員中使用,如果您可以爲表單使用自定義模板。

你可以做一個修改控件(可能是因爲現有的Django控件的子類),即發送額外的字段從模型到一個自定義的widget模板。

您也可以手動呈現形式在它的顯示的模板,並作出獲取使用你的目標對象,這是作爲選項的值傳遞的ID任何額外信息包含標籤。

例如:

your_template.html

{% load destinations %} 
{% for opt in form.destination %} 
{{ opt.tag }} 
{% destination opt.data.value %} 
{% endfor %} 

destinations.py(在your_app/templatetags)

from django import template 
from your_app.models import Destination 

register = template.Library() 

@register.inclusion_tag('your_app/destination-option.html') 
def destination(id): 
    destination=Destination.objects.filter(id=int(id)).first() 
    return {'destination':destination} 

目的地option.html

<!-- any formatting you prefer --> 
{{destination.title}} 
<img src="{{destination.picture.image_url}}"> 
相關問題