Django中的模型表单

noe*_*emi 1 django django-forms

我正在使用HTML和django进行Web界面.我的问题是我想在网站上显示一个表单,以便用户可以填写其中一个模型的字段.虽然我已经阅读了一些有关如何操作的示例和文档,但我无法在我的网站上看到该表单.

在我的django应用程序中,我有以下模型:

class Signature(models.Model):    
    sig = models.ForeignKey(Device)    
    STATE = models.CharField(max_length=3, choices=STATE_CHOICES)    
    interval = models.DecimalField(max_digits=4, decimal_places=2)
Run Code Online (Sandbox Code Playgroud)

由于表单与该模型相关,我创建了这个ModelForm类:

class SignatureForm(ModelForm):
    class Meta:
        model = Signature
Run Code Online (Sandbox Code Playgroud)

之后,我定义了以下视图:

def SigEditor(request):

   if request.method == 'POST':

       form = SignatureForm(request.POST)

       if signature_form.is_valid():

           # Create a new Signature object.

           signature_form.save()

        return HttpResponseRedirect('eQL/training/form.html')

   else:

       form = SignatureForm()

   return render_to_response('eQL/training/showImage.html',
                             {'signature_form' : SignatureForm })
Run Code Online (Sandbox Code Playgroud)

最后,我可以通过添加以下内容来表示我的网站中的表单:

  <fieldset><legend>Device Information</legend>
      <form action="" method="post">

    {{ signature_form }} < br>
      <input type="submit" value="Submit">
      </form>

  </fieldset>
Run Code Online (Sandbox Code Playgroud)

如果我打开网站,没有错误,但我没有看到表格.但是,在提交按钮之前,会出现:

< class 'eQL.models.SignatureForm' > 
Run Code Online (Sandbox Code Playgroud)

谁能帮我?我是这个网络框架的新手.谢谢!!

man*_*nji 6

更新:

你有2个问题:

第一个错误:根据表单方法将表单实例命名为2个名称(但如果不是因为第二个错误,则会引发异常)

第二个错误:您应该将表单实例提供给模板,

不是class('signature_form' : SignatureForm):

return render_to_response('eQL/training/showImage.html',
                          {'signature_form' : form})
Run Code Online (Sandbox Code Playgroud)