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.
For more options, visit https://groups.google.com/d/optout.