in my view class:
def get_form(self, form_class=None):
form = self.get_form_class()
pk = self.request.user.pk
self.object = Account.objects.get(pk=pk)
form_instance = form(instance=self.object)
self.filter_modelChoices(form_instance)
return form_instance
def filter_modelChoices(self, form_instance):
"""
Changes the model choice fields to be correctly filtered
as required by request.user.
"""
opts = self.model._meta
for formfield_name in form_instance.fields:
formfield = form_instance.fields[formfield_name]
if isinstance(formfield, ModelChoiceField):
[modelfield] =
[f for f in opts.fields if f.name == formfield_name]
qs = userVisibleFilterQS(
self.request.user.pk,
False,
modelfield.related_model())
if qs:
formfield.queryset = formfield.queryset.filter(qs)
Am 16.11.2015 um 18:38 schrieb Axel Rau <Axel.Rau@chaos1.de>:
Any idea how to add __init__() to a form class, created by modelform_factory () ?
---
PGP-Key:29E99DD6 ☀ +49 160 9945 7889 ☀ computing @ chaos claudius
PGP-Key:29E99DD6 ☀ +49 160 9945 7889 ☀ computing @ chaos claudius
No comments:
Post a Comment