Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Adding model-wide help text to a django model's admin form

In my django app, I would like to be able to add customized help text to the admin change form for some of my models. Note I'm not talking about the field specific help_text attribute that I can set on individual fields. For example, at the top of the change form for My_Model in My_App I'd like to be able to add some HTML that says "For additional information about My Model, see http://example.com" in order to provide a link to an internal documentation wiki.

Is there any simple way of accomplishing this, or do I need to create a custom admin form for the model? If so, can you give me an example of how I would do that?

like image 829
Jason Jenkins Avatar asked Sep 16 '10 16:09

Jason Jenkins


1 Answers

Use the admin's fieldsets:

class MyAdmin(admin.ModelAdmin):     fieldsets = (         (None, {             'fields': ('first', 'second', 'etc'),             'description': "This is a set of fields group into a fieldset."         }),     )     # Other admin settings go here... 

You can have multiple fieldsets in an admin. Each can have its own title (replace the None above with the title). You can also add 'classes': ('collapse',), to a fieldset to have it start out collapsed (the wide class makes the data fields wider, and other class names mean whatever your CSS says they do).

Be careful: the description string is considered safe, so don't put any uncleaned data in there. This is done so you can put markup in there as needed (like your link), however, block formatting (like <ul> lists) will probably look wrong.

like image 197
Mike DeSimone Avatar answered Oct 20 '22 17:10

Mike DeSimone