2017-01-26 3 views
0

안녕 모두들 djando CMS에서 내 자신의 응용 프로그램을 만듭니다. 이제 내 자신의 클래스와 ID를 내 필드에 추가하고 싶습니다. y 시도해보십시오. 그러나 어떤 것도 얻지는 못합니다. 성공적인 결과. 내 model.py에서admin 필드에 내 자신의 클래스 추가 django-cms

나는 지금 내 form.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' 

하고있는이

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

안녕하세요 @markwalker_ 내가 선택한 옵션에 따라 숨겨진 또는 일부 필드를 표시하기 때문에 관리자 내에서 내 필드에 동일한 클래스를 추가하려고합니다. 이 경우'class = "code"를 필드 코드에 추가하려고합니다. 하지만 작동하지 않아요 – Stone

답변

1

form 속성이 ModelAdmin 인 관리자에게 사용자 지정 양식을 지정할 수 있습니다.

아래 링크 된 문서의 예를 사용하면 다음과 같이 표시됩니다.

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

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 
그래서 당신의 admin.py 당신이 뭔가를해야 할 것;

from .forms import EntryForm 

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

고마워요 @ markwalker_ 당신의 솔루션은 내 분야에 새로운 수업을 추가하는 데 도움이됩니다. 귀하의 솔루션으로 내 대답을 수정했습니다. – Stone