It could be a number of things, but the main thing that caught my attention
was this part

        self.fields['images'].initial = str(selected_image)
        self.fields['images'].initial = str(selected_flavor)

shouldn't it be

        self.fields['images'].initial = str(selected_image)
        self.fields['*flavors*'].initial = str(selected_flavor)

?


On Fri, Jan 23, 2015 at 8:27 PM, Eugene Goldberg <
[email protected]> wrote:

> Hello,
> In my Form I have a couple of ChoiceField fields, for which I need to set
> a default / initial value.
> I'm trying to do this in the __init__, and my debug shows, that these
> values do take, but, when the actual html forms shows up, my default values
> are not set as desired.
> Am I missing something?
>
> The complete code is below. The two fields are 'images' and 'flavors'
>
> class UpdateWorkload(forms.SelfHandlingForm):
>     name = forms.CharField(max_length="255", label=_("Workload Name"))
>     description = forms.CharField(widget=forms.Textarea,
>                                   label=_("Description"), required=False)
>     image_choices = []
>     images = forms.ChoiceField(label=_("Images"), choices=image_choices, 
> initial="")
>     flavor_choices = []
>     flavors = forms.ChoiceField(label=_("Flavors"), choices=flavor_choices, 
> initial="")
>
>     def __init__(self, request, image_choices=image_choices, 
> flavor_choices=flavor_choices,
>                  *args, **kwargs):
>         super(UpdateWorkload, self).__init__(request, *args, **kwargs)
>
>         images, self._more, self._prev = api.glance.image_list_detailed(
>             self.request)
>         flavors = api.nova.flavor_list(request, True)
>
>         for image in images:
>                 image_choices.append((image.id, image.name))
>         if len(image_choices) > 1:
>             image_choices.insert(0, ('', _("Select an Image")))
>         self.fields['images'].choices = image_choices
>
>         for flavor in flavors:
>                 flavor_choices.append((flavor.id, flavor.name))
>         if len(flavor_choices) > 1:
>             flavor_choices.insert(0, ('', _("Select an Flavor")))
>         self.fields['flavors'].choices = flavor_choices
>         selected_workload = kwargs['initial']
>         selected_image = selected_workload['image']
>         selected_flavor = selected_workload['flavor']
>
>         print "initial: " + self.fields['images'].initial
>
>         self.fields['images'].initial = str(selected_image)
>         self.fields['images'].initial = str(selected_flavor)
>
>         print "initial after assignment: " + self.fields['images'].initial
>
>     def handle(self, request, data):
>          try:
>             message = _('Updated Workload')
>             messages.info(request, message)
>             # This is where we actually update our Workload
>             workload_url = "http://localhost:8000/workloads/";
>             workload_name = request.POST.get("name")
>             workload_description = request.POST.get("description")
>             flavor_id = request.POST.get("flavors")
>             image_id = request.POST.get("images")
>             post_data = {"name": workload_name, "description": 
> workload_description,
>                          "image": image_id, "flavor": flavor_id}
>             post_data = json.dumps(post_data)
>             # req = urllib2.Request(workload_url)
>             # req.add_header('Content-Type', 'application/json')
>             req = urllib2.Request(url=workload_url, data=post_data)
>             req.get_method = lambda: 'PUT'
>             resp = urllib2.urlopen(req, post_data)
>
>             return True
>          except Exception:
>             redirect = reverse("horizon:mydashboard:workloads_panel:index")
>             exceptions.handle(request,
>                               _('Unable to create Workload.'),
>                               redirect=redirect)
>
>
>  --
> 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 http://groups.google.com/group/django-users.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/django-users/4c738a85-18ce-4a46-8643-acdbf6f40a15%40googlegroups.com
> <https://groups.google.com/d/msgid/django-users/4c738a85-18ce-4a46-8643-acdbf6f40a15%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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 http://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/CALn3ei3ov0%3D8YyNa0KNfZRCqdR-rQ%3Dr8ZB3fY5KP1onook%2BJ-Q%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to