#9401 closed (worksforme)
inlineformset_factory raise IntegrityError Exception when correct data (is_valid() method) is ok
Reported by: | Wojciech Bartosiak | Owned by: | Brian Rosner |
---|---|---|---|
Component: | Forms | Version: | dev |
Severity: | Keywords: | ||
Cc: | Triage Stage: | Unreviewed | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
Exception Type: IntegrityError at /patients/new/ Exception Value: patients_guardian.pesel may not be NULL Environment: Request Method: POST Request URL: http://localhost:8080/patients/new/ Django Version: 1.0-final-SVN-8985 Python Version: 2.5.2 Installed Applications: ['django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.admin', 'viomed.epikryza', 'viomed.patients'] Installed Middleware: ('django.middleware.common.CommonMiddleware', 'django.contrib.csrf.middleware.CsrfMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.middleware.doc.XViewMiddleware', 'django.middleware.transaction.TransactionMiddleware')
POST
surname u'dshf' name u'hsdfdsfh' guardian_set-0-pesel u'564865486548' guardian_set-TOTAL_FORMS u'1' age u'324' guardian_set-0-relationship u'R' guardian_set-0-name u'hdfsg' guardian_set-INITIAL_FORMS u'0' guardian_set-0-surname u'hdfs' csrfmiddlewaretoken u'19650c559d0c0f113faba870e4b30d23' pesel u'234534253452'
Models:
class Patient(models.Model): pesel = models.DecimalField(verbose_name=_('PESEL'), max_digits=20, decimal_places=0, primary_key=True, unique=True) name = models.CharField(verbose_name=_('Imie'), max_length=20) surname = models.CharField(verbose_name=_('Nazwisko'), max_length=20) age = models.IntegerField(verbose_name=_('Wiek')) def __unicode__(self): return '[ %s ] - %s %s' % (self.pesel, self.surname, self.name); class Meta: verbose_name = _('Pacjent') verbose_name_plural = _('Pacjenci') ordering = ['pesel'] class Guardian(models.Model): FAMILY_RELATIONSHIP = ( ('R', _('Rodzic')), ('s', _('Prawny')), ('o', _('Inne')), ) patient = models.ForeignKey(Patient) pesel = models.DecimalField(verbose_name=_('PESEL'), max_digits=20, decimal_places=0 ,primary_key=True, unique=True) name = models.CharField(verbose_name=_('Imie'), max_length=20) surname = models.CharField(verbose_name=_('Nazwisko'), max_length=20) relationship = models.CharField(verbose_name=_('Pokrewienstwo'), max_length=1, choices=FAMILY_RELATIONSHIP) def __unicode__(self): return '[ %s ] - %s %s' % (self.pesel, self.surname, self.name); class Meta: verbose_name = _('Opiekun') verbose_name_plural = _('Opiekunowie') ordering = ['patient', 'pesel']
Source code :
@login_required @transaction.commit_manually def new_patient_and_guardian(request): patient_form = modelform_factory(Patient) guardian_form = inlineformset_factory(Patient, Guardian, extra=1, max_num=1) patient_f=patient_form() guardian_f=guardian_form() if request.method=="POST": patient_f=patient_form(clone(request.POST)) if patient_f.is_valid(): try: patient = patient_f.save(commit=False) guardian_f=guardian_form(clone(request.POST), instance=patient) if guardian_f.is_valid(): guardian_f.save() patient.save() transaction.commit() return HttpResponseRedirect(reverse('viomed.patients.views.patient_address_edit', args=[patient.pesel])) except Exception, e: transaction.rollback() raise e return render_to_response('patients/patient_form.html', { 'patient_f': patient_f, 'guardian_f' : guardian_f, }, context_instance=RequestContext(request))
Exception is raised at line: guardian_f.save()
Change History (6)
comment:1 by , 16 years ago
comment:2 by , 16 years ago
I will check with the last SVN version ASAP. Probably tommorow because im moving to new flat today
comment:3 by , 16 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
comment:4 by , 16 years ago
Owner: | changed from | to
---|---|
Status: | assigned → new |
problem still exists :(
DB engine is SQLite
comment:5 by , 16 years ago
Resolution: | → worksforme |
---|---|
Status: | new → closed |
Note:
See TracTickets
for help on using tickets.
Is this still an issue in 1.0.1?