我遇到了目前与django有关的任务。有很多关于创建动态表单的教程,但我的问题更多的是关于获取正确的HTML。
我有几个模型实例,让我们
class SomeModel(models.Model):
field1=models.CharField(max_length=20)
field2=models.CharField(max_length=20)
我需要的是向用户显示一个HTML页面,其中多个表单代表几个SomeModel实例。 问题是我希望只有一些表单会让用户有机会只输入field1,有些只允许输入field2而有些只能输入。
对于我不希望编辑的字段,我想将其内容显示为标签。因此,例如在我的数据库中,我有树SomeModel实例,它们有field1和field2('aaa','bbb'),('cccc','dddd')和('eeeee','fffff')。我有信息,我只想在第一个实例中编辑field1,在第二个唯一的字段2是可编辑的,并且允许编辑field1和field2。
呈现我想要的HTML看起来有点像这样
<form method="post" action="">
<input name="some_model_id" type="hidden" value="0">
<label>some Model 0 field1</label><input type="text" name="someModel-0-field1" value="aaa" id="id_form-0-title" />
<label>bbb</label>
<input name="some_model_id" type="hidden" value="1">
<label>cccc</label>
<label>some Model 1 field2</label><input type="text" name="someModel-1-field2" value="dddd" id="id_form-0-title" />
<input name="some_model_id" type="hidden" value="2">
<label>some Model 2 field1</label><input type="text" name="someModel-2-field1" value="eeeee" id="id_form-0-title" />
<label>some Model 2 field2</label><input type="text" name="someModel-2-field2" value="fffff" id="id_form-0-title" />
<input name="Submit" type=submit value="Submit">
</form>
我希望通过django usualy,验证等方式从表单中恢复数据。 我知道有几种形式有formsets,但我不知道如何在这里使用它们。 此外,我希望我可以先创建一个表单,然后说出我想要编辑的内容,而不是将此信息传递给__init__。
实现这个的pythonic方法是什么? 谢谢!