Hi, I've got the following class: CarForm(ModelForm): def __init__(self, *args, **kwargs): super(CarForm, self).__init__(*args, **kwargs) id = self.instance.id qs = CarPhoto.objects.filter(car__id = id) self.fields['main_image'] = forms.ModelChoiceField(qs) class Meta: model = Car
I would like to allow user to choose the main photo for a car only from photos assigned to this car. The code above doesn't work, but when changed to: qs = CarPhoto.objects.filter(car__id = 1) then the field "main_image" has only the photos associated with the car which id is 1. The model classes are (simplified for clarify): class Car(models.Model): main_image = models.ForeignKey('CarPhoto', related_name = 'car_main_image', blank = True, null = True) class CarPhoto(models.Model): image = models.ImageField( upload_to = 'car_photos/') car = models.ForeignKey(Car) Another strange thing is that while trying (in form's __init__ method) do print kwargs then {'instance': <Car: Car object>} was printed. But while doing print kwargs['instance'] then "key error" was printed on a page, and the debugging message was: (...) 51. print kwargs['instance'] ... Local vars (...) kwargs {} (...) How can I get the instance's id in the ModelForm's __init__ properly so that the QuerySet would result only photo's associated with car id equals to instance's id? Why the kwargs behaves so strange? Thanks in advance, Marek --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/django-users?hl=en -~----------~----~----~----~------~----~------~--~---