将模型的id放在模板中的隐藏输入中

时间:2016-10-31 00:37:35

标签: python django django-templates

我想在我的模板中添加一个隐藏的输入,其中包含我的模型ID。这就是我所拥有的:

models.py:

class MyModel(models.Model):
    name = models.CharField(max_length=10)

class MyModelForm(ModelForm):
    class Meta:
        model = MyModel
        fields = ['name']

        widgets = {
            'name': TextInput(),
        }

的index.html:

{{ form.name.label_tag }}
{{ form.name }}

这很好用,并显示带有文本输入的简单表单。我想要做的是添加一个包含模型ID的隐藏输入。我试过了:

models.py:

class MyModel(models.Model):
    name = models.CharField(max_length=10)

class MyModelForm(ModelForm):
    class Meta:
        model = MyModel
        fields = ['name', 'id']

        widgets = {
            'name': TextInput(),
            'id': HiddenInput(),
        }

的index.html:

{{ form.name.label_tag }}
{{ form.name }}
{{ form.id }}

但它不起作用。如果可能,我想避免手动执行此操作:

的index.html:

{{ form.name.label_tag }}
{{ form.name }}
<input type="hidden" name="id" value="{{ form.instance.id }}">

谢谢!

更新

我的总体目标是拥有一个可以编辑现有模型的表单。所以我使用ORM检索模型并将其显示在表单上。当我提交表单来更新对象时,我需要知道它的id,以便ORM知道要更新的对象。谢谢!

0 个答案:

没有答案