2017-01-26 69 views
0

大家好Y在djando CMS中創建我自己的應用程序,現在我想將我自己的類和ID添加到我的字段中.. y試試這個,但我沒有獲得任何成功的結果。在管理員領域添加我自己的類django-cms

在我model.py

我有這個

class Entry(models.Model): 
    TYPES_CHOICES = ( 
    ('none', 'not specified'), 
    ('s', 'Series'), 
    ('mb', 'Multiples Bar'), 
    ('b', 'Bar suggestion'), 
) 
    app_config = AppHookConfigField(HealthConfig) 
    code = models.CharField(blank=True, default='', max_length=250) 
    url_suggestion = models.CharField(blank=True, default='', max_length=250, verbose_name="URL for Suggestion") 


    health_placeholder = PlaceholderField('health_info') 
    objects = AppHookConfigManager() 

    def __unicode__(self): 
    return self.url 

    class Meta: 
    verbose_name_plural = 'entries' 

,現在在我的form.py我有這個

from django import forms 
from .models import Entry 


class EntryForm(forms.ModelForm): 

    class Meta: 
    model = Entry 
    fields = '__all__' 


    def __init__(self, *args, **kwargs): 
    super(EntryForm, self).__init__(*args, **kwargs) 
    self.fields['code'].widget.attrs={ 
     'id': 'my_code', 
     'class': 'code_class', 
    } 

最後我admin.py是這樣

from django.contrib import admin 
from cms.admin.placeholderadmin import PlaceholderAdminMixin 
from .cms_appconfig import HealthConfig 
from .models import Entry 
from .forms import EntryForm 
from aldryn_apphooks_config.admin import ModelAppHookConfig, BaseAppHookConfig 


class EntryAdmin(ModelAppHookConfig, PlaceholderAdminMixin, admin.ModelAdmin): 
    # pass 

    fieldsets = (
    ('General data', { 
     'fields':('app_config','chart', 'url',('count', 'code', 'start')) 
    }), 
    ('Suggestion',{ 
     'classes':('collapse', 'suggestion',), 
     'fields':('url_suggestion',('key1_suggestion_name','key1_suggestion'),('key2_suggestion_name','key2_suggestion'), 'primary_suggestions') 
    }), 
) 

    list_display =('app_config' ,'url', 'chart'); 

    list_filter = (
    'app_config', 
) 

    form = EntryForm 

    class Media: 
    js = ('health/js/admin/healthAdmin.js',) 
    css = { 
     'all': ('health/css/admin/admin_area.css',) 
    } 

admin.site.register(Entry, EntryAdmin) 

任何想法是我想念的東西,在那之後,我再次遷移組件。

在此先感謝!

+0

你想要做什麼? –

+0

嗨@mar​​kwalker_我試圖將相同的類添加到我的字段中的管理員,因爲取決於我選擇我隱藏或顯示一些字段的選項。在這種情況下,我嘗試將'class =「代碼」'添加到我的域代碼中。但不起作用 – Stone

回答

1

您可以使用ModelAdminform屬性爲管理員指定自定義表單。

因此,使用下面鏈接的文檔中的示例,

from django import forms 
from django.contrib import admin 
from myapp.models import Person 


class PersonForm(forms.ModelForm): 
    class Meta: 
     model = Person 
     exclude = ['name'] 


class PersonAdmin(admin.ModelAdmin): 
    exclude = ['age'] 
    form = PersonForm 

https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.form

因此,在您admin.py你需要的東西等;

from .forms import EntryForm 

class EntryAdmin(admin.ModelAdmin): 
    form = EntryForm 
+0

感謝@markwalker_您的解決方案幫助我將新課程添加到我的領域。我用你的解決方案修改了我的答案 – Stone