This has been very old and I had to search for it for a long time. Posting
in case some one needs the answer to the same.
So, the way to do this would be to go via the ModelForm route where the
querysets for each fields for each instance can be set separately
from django import forms
class MyModelForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(MyModelForm, self).__init__(*args, **kwargs)
instance = kwargs['instance']
self.fields['my_field'].queryset = MyFieldModel.objects.filter(...)
@admin.register(MyModel)
class MyModelAdmin(admin.ModelAdmin):
list_display = ['foo_field', 'bar_field', 'my_field']
list_editable = ('my_field',)
def get_changelist_form(self, request, **kwargs):
return MyModelForm
On Thursday, 17 January 2013 00:18:09 UTC+5:30, Daniel França wrote:
>
> Hello,
> I'm using list_editable of a ModelAdmin to allow users change a
> choicefield right in the changelist view.
>
> Ex:
> I've a list
>
> *Field1 Field2 ChoiceField*
> abc def foo
> ghj klm bar
>
> The idea is that ChoiceField is filled according to the *field1 *and *field2
> *values, so the values filled in "foo" choicefield can be different than
> in "bar" choicefield.
>
> But to filter this field this way I need to know some field values of the
> instance I'm pointing.
> I'd tried to implement:
> def formfield_for_foreignkey(self, db_field, request=None, **kwargs):
> if db_field.name == 'my_field':
> kwargs['queryset'] = MyNewFiltter
>
> MyNewFilter is a filter based on fields values of the instance itself
> But it seems that the formfield_for_foreignkey is not created for a
> specific instance, so I've no access to instance fields, is there some way
> to do what I'm thinking about in Admin? If you've any other suggestions to
> do that please let me know.
>
> Best Regards,
> --
> Daniel França,
> about.me/danielfranca
>
--
You received this message because you are subscribed to the Google Groups
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-users/fffd08a5-1054-4ca1-8be0-e4ed2ef3e132%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.