¿Estás usando ModelForm? Yo he hecho algo como esto:
Código:
class ProductForm(forms.ModelForm):
def __init__(self, filter, *args, **kwargs):
super(ProductForm, self).__init__(*args, **kwargs)
self.fields['category'].query_set = Category.objects.filter(filter)
class Meta:
model = Product
Es decir, se cambia el query_set en el constructor pasando el filtro que quieras desde la vista:
Código:
from django.db.models import Q
def index(request, category_id)
form = ProductForm(Q(category_id=category_id))
...