2016-12-20 14 views
2

Django 1.8です。私が持っているモデル:Djangoの管理フォームフィールドの属性は、

class Location(models.Model): 
    address = models.CharField(max_length=65) 
    annotation = models.CharField(
     max_length=80, verbose_name='Additional info', blank=True, null=True, 
     help_text='e.g. officce 412, 4 floor') 

そして私はadmin.pyでフォームの入力フィールドにLocationのビットを拡大するタスクを持っています。私は管理者の形で私のverboose_nameblank=Truehelp_textを失った

class LocationAdminForm(forms.ModelForm): 
    annotation = forms.CharField(
     widget=forms.widgets.TextInput(attrs={'size': 70})) 

、ここで:私はでこれを作りました。私はこの問題を次のように修正することができます:

class LocationAdminForm(forms.ModelForm): 
    annotation = forms.CharField(
     required=not Location._meta.get_field('annotation').blank, 
     label=Location._meta.get_field('annotation').verbose_name, 
     help_text=Location._meta.get_field('annotation').help_text, 
     widget=forms.widgets.TextInput(attrs={'size': 70})) 

しかし、この亜種はとても醜いように見えます...他の選択肢はありますか?

class LocationAdmin(admin.ModelAdmin): 
    class Media: 
     css = { 
      "all": ("location_admin.css",) 
     } 

myapp/static/location_admin.css

+0

あなたが返すラッパー関数を書くことができあなたが望むフィールド。例:http://stackoverflow.com/questions/3647805/get-models-fields-in-django – steph

+0

同意 - それはいいのではありませんが、私は自分のコードに残しました、それはフォーム内の唯一のフィールドです:) –

+0

@stephラッパーがオプションになるかもしれません、ありがとうございます。 – valex

答えて

1

私は非常にModelAdmin asset definitionsを参照して、代わりに、フォーム/フィールドを変更するこの管理モデルのためのCSSを変更することをお勧めします

#id_annotation { width: 423px } 
+0

この可能性をありがとうございます。良いアイデアかもしれない。 – valex

関連する問題