2013-05-09 29 views
0

這裏正在例如在添加自定義的JS代碼(實際上,任何HTML)到內聯的每一個: http://djangosnippets.org/snippets/1261/自定義JS的RadioSelect內聯在Django管理

但我不能重現它在管理RadioSelect類型字段。

型號model.py

class Work(models.Model): 
    client = models.ForeignKey(Client) 

    IMAGE = 'IM' 
    VIDEO = 'VI' 
    CONTENT_TYPE = (
     (IMAGE, 'Image'), 
     (VIDEO, 'Video'), 
    ) 

    content_type = models.CharField(max_length=2, 
            choices=CONTENT_TYPE, 
            default=IMAGE) 

而且admin.py

class WorkInline(admin.TabularInline): 
    fields = ('content_type',) 
    radio_fields = {"content_type": admin.VERTICAL} 
    model = Work 

我無法弄清楚如何覆蓋render()radio_fields(像它上面的例子中爲TextInput完成)注入我的代碼進入他們。或者可能有一些更簡單的方法?

感謝您的幫助。

+0

燦我以某種方式繼承'radio_fields'小部件? – jevgenij 2013-05-14 02:42:36

回答

0
  1. 你應該打電話,因爲forms.py的文件,你應該建立一個像這樣的類:

    class WorkForm(forms.ModelForm): 
    
        class Meta: 
         model = Work 
    
        def __init__(self, *args, **kwargs): 
         super(WorkForm, self).__init__(*args, **kwargs) 
         self.fields['content_type'].widget = ColorPickerWidget() 
    
  2. 不要忘記導入插件

+0

剛剛閱讀Django文檔,它說「'formfield_overrides'不會讓你改變具有'raw_id_fields'或'radio_fields'設置的關係字段上的小部件,這是因爲'raw_id_fields'和'radio_fields'暗示他們自己的定製小部件「。所以恐怕不能通過小部件機制來完成。 – jevgenij 2013-05-13 22:19:11