【发布时间】:2017-03-23 17:37:28
【问题描述】:
例如,我有以下型号:
class Project(models.Model):
description = models.CharField(max_length = 200, null=True)
login_date = models.DateField(null=True)
login_by = models.CharField(max_length = 200, null=True)
notes= models.CharField(max_length = 200, null=True)
class Sample(models.Model):
project = models.ForeignKey(Project, on_delete = models.CASCADE, null=True)
serial_number = models.CharField(max_length = 200, null=True)
location = models.CharField(max_length = 200)
class ProjectForm(ModelForm):
login_date=forms.DateField(widget=DateWidget(attrs={'id':"login_sample"}, usel10n = True, bootstrap_version=3), initial=datetime.date.today)
in_notes = forms.CharField(widget=forms.Textarea)
helper = FormHelper()
helper.layout = Layout(
Div(
'description',
'login_date',
'login_by',
'in_notes',
ButtonHolder(
HTML("<button type='submit' class='save btn btn-default' name = 'projectform'>Save</button>"),
),
)
)
class Meta:
model = Project
fields = ['description', 'login_date','login_by',
'in_shipping_method_tracking_number','in_notes']
class SampleDetailForm(ModelForm):
helper = FormHelper()
helper.layout = Layout(
Div(
'serial_number',
'location',
ButtonHolder(
HTML("<button type='submit' class='save btn btn-default' name = 'sampleform'>Save</button>"),
),
)
)
class Meta:
model = Sample
fields = ['octa_number', 'serial_number', 'pctest_number', 'location',]
这就是我目前设置模型和表单的方式。
我想知道如何制作一个不仅有自己的字段,而且还有 SampleForm 的内联表单集的 ProjectForm,其中可以在模型表单中添加/删除多个样本,就像我们在管理站点中所拥有的一样.我也很高兴知道我应该如何处理视图中的保存和模板中的渲染。
TIA
【问题讨论】:
标签: python django django-models django-forms django-crispy-forms