This does not appear to be the issue, although the indentations are wrong in the posting. The following is what they really are. What am I missing? I am still not sure why unit.save() is not working.
def save_unit(request): if request.method == 'POST': form = UnitFormSave(request.POST) if form.is_valid(): unit = Units.objects.create( serial_number = form.cleaned_data['serial_number'], build = form.cleaned_data['build'], model = form.cleaned_data['model'], source = form.cleaned_data['source']) unit.save() return HttpResponseRedirect('/search/') else: form = UnitFormSave() variables = RequestContext(request, { 'form': form }) return render_to_response('unit_save.html', variables) On Jun 23, 6:55 pm, Karen Tracey <kmtra...@gmail.com> wrote: > On Tue, Jun 23, 2009 at 9:04 PM, db_333 <pleu...@gmail.com> wrote: > > > Hi I'm trying to figure out why a record I am trying to save from a > > form will not commit. The form seems to be working fine, and I wanted > > to know if there were any specific debugging statements I could use to > > see where this is failing. > > > The following is what I have: > > > 1. model: > > > class Units(models.Model): > > serial_number = models.CharField(max_length=25, primary_key=True) > > build = models.CharField(max_length=50, blank=True) > > model = models.CharField(max_length=20, blank=True) > > create_date = models.DateField(null=True, blank=True) > > source = models.CharField(max_length=20, blank=True) > > class Meta: > > db_table = u'units' > > > 2. form: > > > class UnitFormSave(forms.Form): > > serial_number = forms.CharField(max_length=50) > > build = forms.CharField(max_length=50) > > model = forms.CharField(max_length=10) > > source = forms.CharField(max_length=10) > > > 3. view: > > > def save_unit(request): > > if request.method == 'POST': > > form = UnitFormSave(request.POST) > > if form.is_valid(): > > unit = Units.objects.create( > > serial_number = form.cleaned_data['serial_number'], > > build = form.cleaned_data['build'], > > model = form.cleaned_data['model'], > > source = form.cleaned_data['source']) > > unit.save() > > return HttpResponseRedirect('/search/') > > else: > > form = UnitFormSave() > > > variables = RequestContext(request, { > > 'form': form > > }) > > return render_to_response('unit_save.html', variables) > > Is this actually the way you have the save_unit function indented? You've > got everything indented under "if request.method == 'POST'" with nothing for > the GET case. It rather looks like from the "else" currently paired with > "if form.is_valid():" through the end of the funciton should be out-dented > one level. That way if form is not valid what will happen is that the form > annotated with error messages about what is incorrect will be re-displayed. > What is happening with the code you have posted is that the error-annotated > form is being tossed away and replaced with a new blank form. As it is, > though, I don't see how you are getting anything valid on a GET to begin > with, so I am not even sure this is the code you are actually running. > > Karen --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/django-users?hl=en -~----------~----~----~----~------~----~------~--~---