0

ユーザーがチェックした入力に基づいて、Logoofsupport データテーブルに新しい行を作成したいと思います。おそらくこれは間違った方法で行っているのですが、innerHTML をいくつか取得して、サーバー名とルート名に挿入し、日付を引き出​​したいと考えています。これは簡単で、ドロップダウンメニューに基づいて、アクションフィールドに追加されるアクションを選択し、基本的に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であることに基づいて、ドロップダウンボックスの値に基づいてルート名、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']
4

1 に答える 1

0

私があなたの質問を正しく理解している場合: django.forms を使用して投稿されたデータを検証する場合は、HTML フォームの入力フィールドに一意の名前を付ける必要があります。投稿したいデータは HTML 入力フィールドにないため、javascript を使用して値を抽出し、jQuery.post() などの AJAX 経由で投稿することをお勧めします。

于 2013-07-15T16:44:22.163 に答える