【发布时间】:2016-10-04 09:02:06
【问题描述】:
我正在使用 django v1.8。
A 将一张表拆分为四种形式。
来自我的views.py的示例
ext_cent = ExternalCentersForm(request.POST, prefix='extcent')
ext_cent_diagnostic = ExternalCentersDiagnosticForm(request.POST,prefix='extcentDiagn')
ext_cent_outcomes = ExternalCentersOutcomesForm(request.POST,prefix='extcentOutcomes')
ext_cent_outcomes2 = ExternalCentersOutcomes2Form(request.POST,prefix='extcentOutcomesTwo')
当我试图保存它们时,我会使用
ext_cent_object = ext_cent.save(commit=False)
ext_cent_object.author = request.user
ext_cent_object.save()
ext_cent_diagnostic_object = ext_cent_diagnostic.save(commit=False)
ext_cent_diagnostic_object.author = request.user
ext_cent_diagnostic_object.save()
ext_cent_outcomes_object = ext_cent_outcomes.save(commit=False)
ext_cent_outcomes_object.author = request.user
ext_cent_outcomes_object.save()
ext_cent_outcomes2_object = ext_cent_outcomes2.save(commit=False)
ext_cent_outcomes2_object.author = request.user
ext_cent_outcomes2_object.save()
我的forms.py:
class ExternalCentersForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(ExternalCentersForm, self).__init__(*args, **kwargs)
self.helper=FormHelper(self)
#self.fields['patient'].queryset = Demographic.objects.filter(patient_id=self.instance.patient)
self.helper.field_class = 'col-md-8'
self.helper.label_class = 'col-md-3'
self.helper.layout = Layout(
Fieldset(
'<b>Center Information</b>',
Div(
#HTML(u'<br/><div class="col-md-9"><h4><b>Molecular analysis</b></h4></div><br/><br/>'),
Div('location_of_center',css_class='col-md-6'),
Div('name_of_center',css_class="col-md-6"),
Div('type_of_center',css_class="col-md-6"),
css_class='row',
),
),
FormActions(
Submit('submit', "Save changes"),
Submit('cancel',"Cancel")
),
)
self.helper.form_tag = False
self.helper.form_show_labels = True
class Meta:
model = Ext_centers
exclude = ['center_id', 'author']
list_display = ('title', 'pub_date', 'author')
class ExternalCentersDiagnosticForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(ExternalCentersDiagnosticForm, self).__init__(*args, **kwargs)
self.helper=FormHelper(self)
#self.fields['patient'].queryset = Demographic.objects.filter(patient_id=self.instance.patient)
self.helper.field_class = 'col-md-8'
self.helper.label_class = 'col-md-3'
self.helper.layout = Layout(
Fieldset(
'<b>Diagnostic categories</b>',
Div(
HTML(u'<div class="col-md-9"><h4><b>Paroxysmal nocturnal haemoglobinuria (PNH)</b></h4></div>'),
Div('diagn_categ_pnh_no_patient',css_class='col-md-6'),
Div('diagn_categ_pnh_distribution',css_class="col-md-6"),
css_class='row',
),
),
FormActions(
Submit('submit', "Save changes"),
Submit('cancel',"Cancel")
),
)
self.helper.form_tag = False
self.helper.form_show_labels = True
class Meta:
model = Ext_centers
exclude = ['center_id', 'author']
list_display = ('title', 'pub_date', 'author')
class ExternalCentersOutcomesForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(ExternalCentersOutcomesForm, self).__init__(*args, **kwargs)
self.helper=FormHelper(self)
#self.fields['patient'].queryset = Demographic.objects.filter(patient_id=self.instance.patient)
self.helper.field_class = 'col-md-8'
self.helper.label_class = 'col-md-3'
self.helper.layout = Layout(
Fieldset(
'<b>1. Deaths</b>',
Div(
HTML(u'<div class="col-md-9"><h4><b>2015</b></h4></div>'),
Div('outcomes_year2015_thal',css_class='col-md-6'),
Div('outcomes_year2015_sickle',css_class="col-md-6"),
Div('outcomes_year2015_rare',css_class="col-md-6"),
css_class='row',
),
),
FormActions(
Submit('submit', "Save changes"),
Submit('cancel',"Cancel")
),
)
self.helper.form_tag = False
self.helper.form_show_labels = True
class Meta:
model = Ext_centers
exclude = ['center_id', 'author']
list_display = ('title', 'pub_date', 'author')
class ExternalCentersOutcomes2Form(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(ExternalCentersOutcomes2Form, self).__init__(*args, **kwargs)
self.helper=FormHelper(self)
#self.fields['patient'].queryset = Demographic.objects.filter(patient_id=self.instance.patient)
self.helper.field_class = 'col-md-8'
self.helper.label_class = 'col-md-3'
self.helper.layout = Layout(
Fieldset(
'<b>2. More measurements</b>',
Div(
#HTML(u'<br/><div class="col-md-9"><h4><b>Molecular analysis</b></h4></div><br/><br/>'),
Div('out_patients_married',css_class='col-md-6'),
Div('out_patients_divorced',css_class="col-md-6"),
Div('out_patients_single',css_class="col-md-6"),
Div('out_patients_cohabiting',css_class="col-md-6"),
Div('out_patients_parented_children',css_class="col-md-6"),
Div('out_thal_women_preg',css_class="col-md-6"),
Div('out_patients_splene',css_class="col-md-6"),
css_class='row',
),
),
FormActions(
Submit('submit', "Save changes"),
Submit('cancel',"Cancel")
),
)
self.helper.form_tag = False
self.helper.form_show_labels = True
class Meta:
model = Ext_centers
exclude = ['center_id', 'author']
list_display = ('title', 'pub_date', 'author')
来自models.py的示例
class Ext_centers(models.Model):
center_id = models.AutoField(primary_key=True)
center_city = models.CharField('City',max_length=45, null=True, blank=True)
center_country = models.CharField('Country',max_length=45, null=True, blank=True)
center_name_of_medical_director = models.CharField('Name of medical director',max_length=45, null=True, blank=True)
center_name_of_respondent = models.CharField('Name of respondent',max_length=45, null=True, blank=True)
center_status_of_respondent = models.CharField('Status of respondent',max_length=45, null=True, blank=True)
center_telephone = models.IntegerField('Telephone', null=True,blank=True)
center_email = models.EmailField('E-mail',null=True,blank=True)
center_fax = models.IntegerField('Fax',null=True,blank=True)
center_website = models.CharField('Website',max_length=45, null=True, blank=True)
....
pub_date = models.DateTimeField(auto_now=True)
author = models.ForeignKey(User)
history = HistoricalRecords()
def __str__(self):
return self.name_of_center
当我为每个表单生成结果时,我的表中有一个新行,其中仅包含来自特定表单的值。我需要将所有这些表单的数据存储到一个表中。
【问题讨论】:
-
也请张贴您的表格。
-
@itzmeontv 我现在添加了我的表格。
标签: python django django-models django-forms django-views