class Pad_info(models.Model):
site_id = models.IntegerField(primary_key=True) name = models.CharField('Pad Location', max_length=40, unique=True)
...
(irrelevant fields snipped...)
def __unicode__(self): return u'%s, %s' % (self.site_id, self.name) def ID(self): return self.site_id
class Meta: db_table = 'pad_info' verbose_name = 'Pad Info'
class Inspections(models.Model): of_pad = models.ForeignKey(Pad_info) insp_date = models.DateField('Inspection Date') agency = models.CharField('Agency/ Organization', max_length=40) lead_inspector = models.CharField('Lead Inspector', max_length=40) accepted = models.BooleanField(default=False) comments = models.TextField('Comments/ Notes')
def __unicode__(self): return self.agency
def ID(self): return self.id
class Meta: db_table = 'inspections' verbose_name = 'Pad Inspection'
from django import formsfrom django.forms import ModelFormfrom django.forms.fields import DateFieldfrom reclamationdb.models import Inspections
class create_insp_m(ModelForm): class Meta: model = Inspections fields = ['insp_date', 'of_pad', 'agency', 'lead_inspector', 'accepted', 'comments']
def inspectioncreate_m(request): if request.method == 'POST': form = create_insp_m(request.POST) if form.is_valid(): # create new inspection record insp_date = form.cleaned_data['insp_date'] of_pad = form.cleaned_data['of_pad'] agency = form.cleaned_data['agency'] lead_inspector = form.cleaned_data['lead_inspector'] accepted = form.cleaned_data['accepted'] comments = form.cleaned_data['comments'] # find if there is a record that matches pad_id try: checkPad = Pad_info.objects.get(pk=of_pad) newrecord = Inspections(of_pad, insp_date, agency, lead_inspector, accepted, comments) newrecord.save(force_insert=True) except Pad_info.DoesNotExist: # display error message and blank the pad_id field pass return render(request, 'reclamationdb/inspectioncreate_mobile.html', {'form' : form,}) #return HttpResponseRedirect('/index/') else: # invalid form pass else: # do something else form = create_insp_m() #return render(request, 'reclamationdb/inspectioncreate_mobile.html', {'form' : form,}) return render(request, 'reclamationdb/inspectioncreate_mobile.html', {'form' : form,})
<snip>
You can use kwargs, but it is much cleaner and less typing to use
Model.objects.create() as you can omit the subsequent save() as
create() creates valid objects (they have pks).