Opened 15 years ago

Closed 10 years ago

#10938 closed New feature (duplicate)

add inlines into fieldsets

Reported by: tangc Owned by: nobody
Component: contrib.admin Version: dev
Severity: Normal Keywords: inlines fieldsets
Cc: cg@…, ckesselh, gargr, gezuru@… Triage Stage: Accepted
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: yes

Description (last modified by Aymeric Augustin)

'ModelAdmin has fieldsets and inlines. e.g.
Ref: http://docs.djangoproject.com/en/dev/intro/tutorial02/,

fieldsets = [
        (None,               {'fields': ['question']}),
        ('Date information', {'fields': ['pub_date']}),
    ]

inlines = [ChoiceInline]

If can put the inlines into the fieldsets, it would be great. such as:

fieldsets = [
        (None,               {'fields': ['question']}),
        ('inlines sample',   {inlines : [ChoiceInline]}),
        ('Date information', {'fields': ['pub_date']}),
        ('inlines sample 2', {inlines : [SomeOtherChoiceInline]}),
    ]

Change History (17)

comment:1 by tangc, 15 years ago

Or such as:

fieldsets = [
        (None,               {'fields': ['question']}),
        ('inlines sample',   {inlines : [ChoiceInline]}),
        ('Date information', {'fields': ['pub_date']}),
        ('inlines sample 2', {inlines : [SomeOtherChoiceInline]}),
        ('inlines sample 3', {inlines : ['fieldA', 'fieldB', ]}),
    ]

comment:2 by gmorehoudh, 14 years ago

Bump -- I finally managed to find this bug and find that there is apparently no way to accomplish this. It's surprising. This feature would be quite useful.

comment:3 by Russell Keith-Magee, 14 years ago

Resolution: wontfix
Status: newclosed

I'm not sure I agree that this would be an improvement. Feel free to open a discussion on django-dev if you disagree.

comment:4 by Christopher Grebs, 13 years ago

Cc: cg@… added

comment:5 by Stephen Burrows, 13 years ago

Easy pickings: unset
Resolution: wontfix
Severity: Normal
Status: closedreopened
Triage Stage: UnreviewedAccepted
Type: New feature
UI/UX: set
Version: 1.0SVN

Reopened as per discussion on django developers. Since inlines already have a label (in the form of verbose_name) and can control their fields etc., perhaps the following syntax would make more sense:

fieldsets = (
    (None, {'fields': 'field1', 'field2'}),
    SomeInline,
    ("Remaining Fields", {'fields': 'field3', 'field4', 'field5'})
)

comment:6 by Aymeric Augustin, 13 years ago

Description: modified (diff)
Owner: changed from nobody to Aymeric Augustin
Status: reopenednew

comment:7 by Julien Phalip, 13 years ago

See also #4848, which suggests supporting inlines declaration via ModelAdmin.fields. #16089 might also be of interest, as it discusses adding the ability to dynamically add and remove inlines on a per-request basis.

comment:8 by ckesselh, 13 years ago

Cc: ckesselh added

comment:9 by gargr, 13 years ago

Cc: gargr added

comment:10 by stormlifter, 13 years ago

Part of the issue I see is that if you are overriding another app's forms then it would be nice to be able to use an inline and add that into the fieldset so that you don't have to redo everything. For example...

class UserProfileInline(admin.TabularInline):
	model = UserProfile

class UserAdmin(UserAdmin):
	inlines = [UserProfileInline]

The sytax that melinath suggest isn't bad. Another idea would be to call a special method that allows you to insert the Inline at a specified index. So you could say in the example of melinath "fieldsets.inject(1,SomeInline)" which would put the fieldsets from SomeInline into the fieldsets of the parent at that location.

The issue I am getting is that since the fieldsets are unable to include any inline fields that the fields from the inline model are always forced to the bottom, of course I could use JS to move them to the top, but that's just boring. I could also override the form and make it save that added field to the appropriate model, but that's just sloppy.

Version 3, edited 13 years ago by stormlifter (previous) (next) (diff)

comment:11 by Aymeric Augustin, 12 years ago

Owner: changed from Aymeric Augustin to nobody

comment:12 by gezuru@…, 12 years ago

Cc: gezuru@… added

comment:13 by gezuru@…, 12 years ago

Resolution: duplicate
Status: newclosed

With the syntax proposition by melinath this ticket has become a duplicate of #4848.

comment:14 by anonymous, 12 years ago

Resolution: duplicate
Status: closedreopened

comment:15 by Aymeric Augustin, 12 years ago

Resolution: duplicate
Status: reopenedclosed

Please don't reopen tickets anonymously without providing an explanation. You may have a good reason for reopening this ticket; if so, say it!

comment:16 by neamat@…, 10 years ago

Resolution: duplicate
Status: closednew

comment:17 by Simon Charette, 10 years ago

Resolution: duplicate
Status: newclosed

Please don't reopen tickets anonymously without providing an explanation. You may have a good reason for reopening this ticket; if so, say it!

Note: See TracTickets for help on using tickets.
Back to Top