Hi -
I'm using Django 1.3 and I have a model defined with a DateTimeField
and a corresponding form that uses a SpliteDateTimeField to format the
date and time the way I want it to look. The definition looks like
this:
# ----------- Code snippet _____________________________#
class Test(models.Model):
name = models.CharField(max_length=200)
description = models.CharField(max_length=1024, blank=True)
start_time = models.DateTimeField('start date/time')
class TestForm(ModelForm):
start_time = SplitDateTimeField(input_time_formats=['%I:%M %p',
'%H:%M:%S', '%H:%M'],
widget=SplitDateTimeWidget(date_format='%m/%d/%Y', time_format='%I:%M
%p'))
class Meta:
model = Test
widgets = { 'description': Textarea(attrs={'cols': 40, 'rows':
5}), }
# ----------- End snippet _____________________________#
This works perfectly if I'm adding new instances of Test, the date and
time format the way I want it and they go into the database correctly.
The problem I'm having is that I would like to have an edit page to
edit the item in the data base. So in my view I have this:
# ----------- Code snippet _____________________________#
def test_edit(request, test_id):
if request.method == 'POST': # If the form has been submitted...
# Edited out for brevity.
else:
test = Test.objects.get(id=test_id)
test_dict = model_to_dict(test)
logging.info('Test_dict-------------------------------------------')
logging.info(test_dict)
form = TestForm(test_dict) # An unbound form
return render_to_response('tester/edit_test.html', {'form':
form,},
context_instance=RequestContext(request))
# ----------- End snippet _____________________________#
When I do this I can look in the log and the start_time is a date time
tuple as it should be. But in my form the fields for date and time are
not populated with the values that were in the database and that
showed up in the log.
Another curious thing is that when I create a new TestForm object and
give it an initial value like this:
form = TestForm(initial={'start_time':
datetime.datetime.now(), })
It works just fine - the date and time are populated in the form with
the current date and time.
What am I doing wrong here? I have a feeling I have to do something
with over riding the clean method of the form but I'm now sure how.
Thanks for any help.
Jim
--
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.