0

これは現在の Html です。ルート テーブルからルート名と現在のプラットフォームを取得し、ルート名を使用してログ テーブルに新しい行を作成します。

      <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 >
            <form name= "/display2/" method="POST">


            <td align="center"><input type="checkbox" class="selectedId" onclick="resetSelectedAll(this);" id="row{{ forloop.counter }}" ></td>

                <td name = "root" id="row{{forloop.counter}}rootname">{{ status.rootname }}</td>

                <td name= "server" 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="action">
            <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"/>

これは私の現在のビューです。アスタリスクで囲まれたものをhtmlのテキストに置き換えたいと思います。これにより、選択した情報に基づいて別のテーブルに新しい行が作成されます。フォームを使用してみましたが、データを入力したくありません。既に表示されているデータを呼び出すか、2 つを逆方向に接続する必要があります。

def display2(request, value=None):
    log = Logofsupport._meta.get_all_field_names()
    rootFilter = Viewroot.objects.filter(rootstatus__gt=0, type =1, jvmms=1024, rootgroup =     value).distinct()#Root List by RootGroup
    if request.method == 'POST':

        log = LogofsupportForm(request.POST)
      #  action = request.Get.get('action')
        if log.is_valid:
           new = LogofsupportForm**(servername="appBOWSERtest032", rootname="appBOWSERtest032",requesteddate='07/16/2013', action="restart", loginname="justin")**
           new.save()
        else:
            log= LogofsupportForm()
    return render_to_response('status/root_server.html', { 'root' : rootFilter, 'log': log },context_instance=RequestContext(request))
4

1 に答える 1

0

あなたのプロセスの目的が何であるかを完全には理解していませんが、あなたの質問に対する答えは、テンプレート ファイルを使用する代わりに、Python コードで必要な HTML の文字列を作成することだと思います。

つまり、すべての forloop.counters で tr を取得し、python 関数の文字列で再作成します。次に、その文字列をテンプレート変数としてロードし、テンプレート内の各 HTML 行に貼り付けます。次に、ロギング関数内で、各行を作成する同じ python 関数を呼び出して、効果的に「インポート」できます。

「HTML を取得する」ことは可能ですが、HTTP リクエスト引数として必要な HTML を送信する Javascript を介したある種の非同期リクエストが必要になります。非同期 JavaScript リクエストを Django に送信するプロセスを自動化できるdajaxというライブラリがありますが、HTML の作成方法を単純にリファクタリングする方がはるかに簡単です。

于 2013-07-16T15:10:41.750 に答える