Opened 16 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 )
'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 , 16 years ago
comment:2 by , 15 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 , 15 years ago
Resolution: | → wontfix |
---|---|
Status: | new → closed |
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 , 14 years ago
Cc: | added |
---|
comment:5 by , 13 years ago
Easy pickings: | unset |
---|---|
Resolution: | wontfix |
Severity: | → Normal |
Status: | closed → reopened |
Triage Stage: | Unreviewed → Accepted |
Type: | → New feature |
UI/UX: | set |
Version: | 1.0 → SVN |
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 , 13 years ago
Description: | modified (diff) |
---|---|
Owner: | changed from | to
Status: | reopened → new |
comment:7 by , 13 years ago
comment:8 by , 13 years ago
Cc: | added |
---|
comment:9 by , 13 years ago
Cc: | added |
---|
comment:10 by , 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.
comment:11 by , 13 years ago
Owner: | changed from | to
---|
comment:12 by , 13 years ago
Cc: | added |
---|
comment:13 by , 13 years ago
Resolution: | → duplicate |
---|---|
Status: | new → closed |
With the syntax proposition by melinath this ticket has become a duplicate of #4848.
comment:14 by , 12 years ago
Resolution: | duplicate |
---|---|
Status: | closed → reopened |
comment:15 by , 12 years ago
Resolution: | → duplicate |
---|---|
Status: | reopened → closed |
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 , 10 years ago
Resolution: | duplicate |
---|---|
Status: | closed → new |
comment:17 by , 10 years ago
Resolution: | → duplicate |
---|---|
Status: | new → closed |
Please don't reopen tickets anonymously without providing an explanation. You may have a good reason for reopening this ticket; if so, say it!
Or such as: