python - Django foreign key as dropdown choice with optgroups -
i have following django models:
class basemodel(models.model): uuid = uuidfield() created = models.datetimefield(auto_now_add=true, null=true) modified = models.datetimefield(auto_now=true, null=true) class meta: abstract = true class company(basemodel): title = models.charfield(_(u'title'), max_length=128) class profile(basemodel): company = models.foreignkey(company, verbose_name='company') user = models.onetoonefield(user, verbose_name='user', null=true, blank=true) class servicecategory(basemodel): company = models.foreignkey(company) title = models.charfield(_(u'title'), max_length=64) class service(basemodel): category = models.foreignkey(servicecategory) title = models.charfield(_(u'title'), max_length=64) as can see, each servicecategory has company foreign key. company used group users (each user have one2one relation profile, company foreign key profile.
anyway, need form field dropdown show available services in company grouped (using optgroup) categories (categories not selectable), like:
category1
- service1
- service2
- service3
category2
- service4
- service5
any suggestions how achieve this?
dj form support optgroup, need provide form field custom formatted choice list.
# in form init def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) # need manual format queryset in format service_choices = ( ('cat1', ( ('service1_id', 'service1'), ('service2_id', 'service2'), ), ('cat2', ( ('service3_id', 'service3'), ('service4_id', 'service4'), ), ) self.fields['your_service_field'].choices = service_choices
Comments
Post a Comment