Hello all, I posted a while ago about some file upload issues, i
figured out how to upload a file with my custom manipulator, but now I
am running into an issue where if I do not include file in my form I
get an error message that "list indexes must be integers"
My custom manipulator is here, along with the update call.
class ParticipantManipulator(Manipulator):
# define fields#
fields =(
forms.FileUploadField(field_name="photo_path",
is_required=False),
forms.IntegerField(field_name="birthyear",
is_required=False),
forms.TextField(field_name="gender", length=5,
is_required=False),
forms.TextField(field_name="adventurousness", length=20,
is_required=False),
forms.TextField(field_name="postal_code",length=15,
maxlength=15, is_required=False),
forms.TextField(field_name="geographical_location",
length=20, is_required=False),
forms.LargeTextField(field_name="bio", is_required=False),
forms.LargeTextField(field_name="about_my_music",
is_required=False),
forms.TextField(field_name="how_did_you_find_goombah",length=20,
is_required=False),
forms.LargeTextField(field_name="fav_lyric",
is_required=False),
forms.TextField(field_name="best_song",length=20,
is_required=False),
forms.TextField(field_name="best_album",length=20,
is_required=False),
forms.TextField(field_name="best_band",length=20,
is_required=False),
forms.TextField(field_name="worst_song",length=20,
is_required=False),
forms.TextField(field_name="tags", length=25,
is_required=False),
)
def __init__(self,participant):
self.participant = participant
self.default = participant.__dict__
def complete(self, request, data):
self.participant.photo_path = data['photo_path']['filename']
self.participant.birthyear = data['birthyear']
self.participant.gender = data['gender']
self.participant.adventurousness=data['adventurousness']
self.participant.postal_code =data['postal_code']
self.participant.geographical_location=data['geographical_location']
self.participant.bio=data['bio']
self.participant.about_my_music=data['about_my_music']
self.participant.how_did_you_find_goombah=data['how_did_you_find_goombah']
self.participant.fav_lyric=data['fav_lyric']
self.participant.best_song=data['best_song']
self.participant.best_album=data['best_album']
self.participant.best_band=data['best_band']
self.participant.worst_song=data['worst_song']
self.participant.tags =data['tags']
# call the custom save() method from the manipulator
# image upload seperate from the data save- this can be
refractored to be more generic
# save_FOO_file is an included method with a filefield
if data['photo_path']['filename']:
if data['photo_path']['content']:
self.participant.save_photo_path_file(data['photo_path']['filename'],data['photo_path']['content'])
self.participant.save()
else:
self.participant.save()
def update(request,name):
participant = get_object_or_404(Participant,
normal_nickname__exact=name)
manipulator = ParticipantManipulator(participant)
manipulator.process(request)
if(manipulator.process(request)):
return render_to_response('profiles/update.html', {'form':
manipulator.form, 'participant': participant })
else:
return HttpResponseRedirect("/profiles/%s" %
participant.normal_nickname)
in my form I have this:
<dd><h3>About Me</h3>
<label for ="id_bio">Bio</label><br/>
{{form.bio}}<br/>
Adventureousness: {{form.adventurousness}}<br/>
<label for="id_photo_path"> My
Pic.</label> <br/>
Current: {{ form.photo_path
}}<br/>
Update: {{ form.photo_path_file
}}
</dd>
when I render the form I do not get the current file listing... and I
cannot update the form without putting in a new file..
Any thoughts...
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---