Reputation: 5599
class TriggerForm(ModelForm):
class Meta:
model = Trigger
class Trigger(models.Model):
account = models.ForeignKey(Account)
name = models.CharField(max_length=255)
schedule = models.ForeignKey(Schedule)
def __unicode__(self):
return self.name
When the trigger form is shown I only want to show schedule items that are for the logged in account but instead it shows me all schedule objects.
Upvotes: 1
Views: 54
Reputation: 34553
You can pass in the request as an argument to the TriggerForm and then use that to filter the Schedule...
class TriggerForm(ModelForm):
class Meta:
model = Trigger
def __init__(self, request=None, *args, **kwargs):
super(TriggerForm, self).__init__(*args, **kwargs)
self.fields['schedule'] = forms.ModelChoiceField(queryset=Schedule.objects.filter([your filter here based on the logged in user]))
#views.py
from my_app.forms import TriggerForm
def my_view(request):
form = TriggerForm(request, request.POST or None)
# and so on
Hope that helps you out.
Upvotes: 2