On 28-8-2012 14:30, Axel Rau wrote:
>
> Am 28.08.2012 um 00:13 schrieb Melvyn Sopacua:
>
>>>
>>> Another question: How can I expand the right fieldset dependent of
>>> current content of my choices field (as loaded from db) while
>>> rendering the change page initially?
>>
>> Look in django/contrib/admin/options.py for get_fieldsets(). Also look
>> at this bugreport for it's limitations:
>> <https://code.djangoproject.com/ticket/18681>
>>
>> Short version: the method as it is implemented requires that you have at
>> least some declared fieldsets.
>>
>> In case you're also new to python, you should convert your declared
>> fieldsets from a tuple to a list, so it's easier to modify it.
> This method belongs to InlineModelAdmin.
> I never worked with Inlines before. It seems, they work only with parent-
> child situations (as documented). Unfortunately my form deals only with one
> model.
Not sure why you would think that it only applies to inlines. It's a
method for ModelAdmin (shared by InlineModelAdmin through inheritance).
>>> from django.contrib.admin import ModelAdmin
>>> ModelAdmin.get_fieldsets
<unbound method ModelAdmin.get_fieldsets>
Try this:
class MailboxAdmin(models.ModelAdmin) :
list_display = ('localpart', 'localdomainfk', 'type',
'aliastargetaddresses', 'created', 'updated')
fieldsets = [
(None, {
'fields': (('localpart', 'localdomainfk'), 'accountfk', 'lifetime',
'type')
}),
]
def fieldset_section(self, title, fields, classes=None) :
if classes is not None :
return (title, {
'fields': fields,
'classes': classes }
)
else :
return (title, {'fields': fields})
def get_fieldsets(self, request, obj=None) :
alias_classes = mailbox_classes = None
if obj :
if obj.type == 'A' :
alias_classes = ('collapse',)
elif obj.type == 'M' :
mailbox_classes = ('collapse',)
fs = self.declared_fieldsets
fs.append(self.fieldset_section('Mailbox',
('aoxuserid', 'quota'), mailbox_classes))
fs.append(self.fieldset_section('Aliases',
('aliastargetaddresses',), alias_classes))
fs.append(self.fieldset_section(None,
('remarks',)))
return fs
--
Melvyn Sopacua
--
You received this message because you are subscribed to the Google Groups "Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to django-users+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment