如何在django中的数据库表中创建一个新行,并使用提交按钮和innerHTML名称作为数据字段



我想根据用户检查的输入在我的Logofsupport数据表中创建一个新行,也许我做得不对,但我想获取一些innerHTML,并将其插入到servername和rootname中,然后提取日期,这应该很容易,并基于下拉菜单选择一个将附加到操作字段的操作,然后提交数据,这基本上就是我相信django的保存功能。

 def log(request):
     cust = Logofsupport.objects.create(servername= "innerHTML FIELD",rootname="innerHTML
                 FIELD", requesteddate="innerHTML FIELD", action="Submit Form FIELD")
    return render_to_response('status/log.html', {'add':cust},context_instance=RequestContext(request))

这是我的HTML,我想检查该行,并在检查为true的基础上,根据下拉框的值获取rootname、requestdate和操作,然后在单击提交按钮后创建一个新行添加到我的sql表中。我更感兴趣的是如何创建表单代码。


  <body>
<div id="container">
    <div id = "left" >
        {%for status in root|slice:":1" %}
    <h1><center>Root List by {{status.rootgroup}} Rootgroup<center></h1>
    {% endfor %}
        <h3 id="time">current:  </h3>
        <table border = "2">
            <tr>
            <th><input type="checkbox" id="selectall"/>   Check All</th>
                <th>Rootname </th>
                <td>Urls</td>
                <th> custs </th>
                <th> jvmms </th>
                <th> x64 </th>
                <th> currentplatform </th>
                <th> currentjdk </th>
                <th> currenttomcat </th>
                <td><p>Date: <input type="text" id="datepicker" size="10" /></p></td>
        <td><input type="text" value="12:00" size="5" /><td>
            <select name="ampm">
                <option value="am">AM</option>
                <option value="pm">PM</option>
            </select>
            </tr>
                {% for status in root %}
            <tr id="l{{forloop.counter}}">
            <form name= "info" action="">
            <td align="center"><input type="checkbox" class="selectedId" onclick="resetSelectedAll(this);" id="row{{ forloop.counter }}" ></td>
                <td id="row{{forloop.counter}}rootname">{{ status.rootname }}</td>
                <td id="row{{forloop.counter}}urls">{{ status.urls }}</td>
                <td id="row{{forloop.counter}}custs">{{ status.custs }}</td>
                <td id="row{{forloop.counter}}jvmms"> {{ status.jvmms }}</td>
                <td id="row{{forloop.counter}}x64">{{ status.x64 }}</td>
                <td id="row{{forloop.counter}}currentplatform"> {{ status.currentplatform }}</td>
                <td id="row{{forloop.counter}}currentjdk"> {{ status.currentjdk }}</td>
                <td id="row{{forloop.counter}}currenttomcat">{{ status.currenttomcat }}</td>
            </tr>
                {% endfor %}
        </table>
        <select name="buttons">
            <option value="Restart">Restart</option>
            <option value="Full_Dump">Full_Dump</option>
            <option value="Redeploy">Redeploy</option>
            <option value="Thread">Thread</option>
            </select>
            <input type="submit" onclick="check()" value="submit"/>
    </form>
    </div>

这是我尝试创建一个使用复选框的表单,希望它能让创建新行变得更容易,我有点迷失了方向。


class LogofsupportForm(forms.ModelForm):
    myboolean = forms.BooleanField()
    servername = forms.CharField(max_length=50) # Field name made lowercase.
    rootname = forms.CharField(max_length=50) # Field name made lowercase.
    requesteddate = forms.DateTimeField() # Field name made lowercase.
    action = forms.CharField(max_length=50) # Field name made lowercase.
    loginname = forms.CharField(max_length=50) # Field name made lowercase.
    result = forms.CharField(max_length=50) # Field name made lowercase.
    class Meta:
        model= Logofsupport
        fields = ['servername', 'rootname', 'requesteddate', 'action','loginname',
                  'result']

如果我正确理解您的问题:如果你想使用django.forms来验证你发布的数据,你需要给HTML表单输入字段唯一的名称。由于要发布的数据不在HTML输入字段中,我建议您使用javascript提取值并通过AJAX发布,如jQuery.post().

最新更新