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 [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---