2017-01-26 62 views
1

有沒有更快的方法來追加一個類名到Django Admin的輸入字段?例如我有一個名爲'markdown'的文本字段,我想向它添加類markdown,所以我可以在管理員中輕鬆應用降價編輯器。將類添加到django管理員字段的快速方法?

此代碼的結果是完美的。只需要一個PITA,將其應用到我的所有管理形式中。

我不能使用formfield_override,因爲並非所有的textarea都是降價。

class MyModelAdminForm(forms.ModelForm): 
    class Meta: 
     model = models.MyModel 
     widgets = { 
      'markdown': forms.Textarea(attrs={'class': 'markdown'}) 
     } 


class MyModelAdmin(admin.ModelAdmin): 
    form = MyModelAdminForm 

回答

2

爲什麼不創建一個字符串,將持有的類名,你想給它一個類,然後將字符串傳遞給attrsclass鍵每個輸入?現在

# forms.py 

MARKDOWN = 'markdown' 

class MyModelAdminForm(forms.ModelForm): 
    class Meta: 
     model = models.MyModel 
     widgets = { 
      'markdown': forms.Textarea(attrs={'class': MARKDOWN}) 
     } 

可以重複使用MARKDOWN到其他modelForm秒。當然,這並不能解決重複問題,但至少不易出錯。

另一種解決方案是(通過class Media第一它列入你的MyModelAdmin類中)使用JavaScript,然後它裏面你應該做這樣的事情:

// myModelAdmin.js 

const $ = django.jQuery; 

$(function() { 
    $('your-selectors').addClass('markdown'); 
}); 
相關問題