HTMLを編集する必要はありません。 fieldset.htmlやその他の管理用テンプレートを上書きする必要はありません。
やりたいことです:
- あなたはCSSセレクタを使用してラベルを選択できることを確認します。
- CSSスタイルシートを追加します。
次のCSSを使用して、ラベルを選択することができます。
/* attribute selector selecting only the label with for="id_numInvestments" */
label[for="id_numInvestments"] { width: 300px; }
または
/* Applies to all labels in fieldset with class='field-numInvestments' */
.field-numInvestments label { width: 300px; }
は/私にあなたの静的なディレクトリのどこか(/パスを/新しいCSSファイルを作成します。 CSS)。 このスタイルシートの内容は上記のcssセレクタの1つである必要があります。
管理のヘッダに、このスタイルシートを含めるには、「追加」と「変更」ページでは、あなたのModelAdminの「にクラスメディア」を追加:
admin.py
class MyModelAdmin(admin.ModelAdmin):
...
class Media:
css = {
'all': ('/path/to/my.css',)
}
admin.site.register(MyModel, MyModelAdmin)
注:「すべての'はすべてのメディアタイプに対応しています。 「スクリーン」、「プリント」、「投影」などを使用することもできます。
完了!
代わりに、Djangoはadmin.pyを介してフィールドセットにcssクラスを追加する方法を提供します。
デフォルトの管理用スタイルシートには、「ワイド」および「extrapretty」CSSクラスが含まれています。彼らはあなたの管理者に「追加」と「変更」のページに幅広く控えめな外観を与えます。この外観はより広いラベルを持っています!あなたが運が良ければ、これらは十分で、カスタムスタイルシートを追加する必要はありません! :)
フィールドセットのCSSクラスを設定するには、ModelAdminでフィールドセットを定義する必要があります。
admin.py:
class MyModelAdmin(admin.ModelAdmin):
...
fieldsets = (
(None, {
'classes': ('wide', 'extrapretty'),
'fields': ('numInvestments', '...') # And all other fields.
}),
admin.site.register(MyModel, MyModelAdmin)
'ワイド'、 'extraprettyは' 十分でない場合には、 'フィールドセット' は、あなたのフィールドセットにカスタムCSSクラス( 'extra_wide')を追加するために使用。
admin.py:
class MyModelAdmin(admin.ModelAdmin):
...
fieldsets = (
(None, {
'classes': ('extra_wide',),
'fields': ('numInvestments', 'other_field_with_wide_label')
}),
(None, {
'fields': ('other_field', '...') # All other fields.
}),
)
class Media:
css = {
'all': ('/path/to/my.css',)
}
admin.site.register(MyModel, MyModelAdmin)
my.css:
.extra_wide label { width: 300px; }
fieldsetのことの利点は、あなたがDjangoのデフォルトのCSSを使用するか、または一度だけのスタイルシートを作成することができるということです。残りはadmin.py形式で制御されます。したがって、これはワイドラベルが複数回出現する場合に適しています。
さらに別の方法:問題を回避するだけです。あなたのラベルを短くしてくださいとあなたのフィールドがあるものについて説明する 'help_textに' を使用
1):
models.py:
numInvestments = models.IntegerField('Your total number of investments')
は次のようになります。
numInvestments = models.IntegerField('Investments',
help_text="Your total number of investments.")
2)ラベルを短くしてフィールドセットを使用してフィールドの上にタイトルを付け、このフィールドの内容を説明するタイトル:
models.py:
numInvestments = models.IntegerField('Number')
はadmin.py:私は本当に長いラベルを必要とし、それが独特の例外であれば
class MyModelAdmin(admin.ModelAdmin):
...
fieldsets = (
('Investments', {
'fields': ('numInvestments',)
}),
)
admin.site.register(MyModel, MyModelAdmin)
私はセレクタatrribute CSSを使用します。しかし、より長いラベルがある場合は、フィールドセットを 'wide'と 'extrapretty'またはカスタムクラス( 'extra_wide')で使用する必要があります。しかし、ほとんどの場合、短いラベル、help_text、およびフィールドセット内のフィールドをタイトルでグループ化することで、この問題を回避しようとします。
これはあなたの質問に答えましたか?私はそれが助けて欲しい
確かに、幅を定義するのはHTMLではなく、CSSです。 –