2017-02-03 5 views
0

詳細ビューテンプレートで2つのユーザー指定変数から値を作成しようとしています。私はjinjaを使ってHTMLの中で数学を試してみましたが、好みの方法はapps views.pyファイルの中に変数を作ることです。私はここで私は、現在持っているものだ、いくつかの矛盾する方法を発見しました:私のhtmlでDjangoビュー変数

def meter_variables(request): 
    GvData.incoming_meter_daily_total = (GvData.incoming_meter_1_close - GvData.incoming_meter_1_open) 
    + (GvData.incoming_meter_2_close - GvData.incoming_meter_2_close) 

    return render(request, 'geneva/geneva_record.html', 
        {'incoming_meter_daily_total': GvData.incoming_meter_daily_total}) 

は私が持っている:

<td><input type="number" class="form-control" placeholder="Daily Total" 

value="{{ incoming_meter_daily_total }}"/> 
          </td> 

それは何の価値を提供していません。私はモデルオブジェクトから値を誤ってアクセスしていると思いますが、どのように正確にはわかりません。

models.pyでの私のクラスは非常に長いですが、すべてのフィールドが上のバリエーションです:

class GvData(models.Model): 
    gv_01_open_stock = models.FloatField(default=0) 
    gv_02_open_stock = models.FloatField(default=0) 

私の見解は、クラスビューを使用して作成されています:

class IndexView(generic.ListView): 
    template_name = 'geneva/index.html' 

    def get_queryset(self): 
     return GvData.objects.all() 


class RecordView(generic.DetailView): 
    model = GvData 
    template_name = 'geneva/geneva_record.html' 

答えて

0

あなたがデータを送信する場合現時点ではテンプレートからそのままテンプレートに「オブジェクト」を追加する必要はありませんvalue="{{ object.incoming_meter_daily_total }}"

ビューでは、このキーに値を割り当てています:incoming_meter_daily_total だから、これはあなたがあなたのモデルから設定されたクエリを取得しているテンプレートで使用する必要がある正確な変数

value="{{ incoming_meter_daily_total }}" 

です。コードを見ることで、このクエリセットから直接値を取得しようとしています。 Djangoは、ページ全体を壊さないために、テンプレートで黙って失敗します。このクエリセットの要素の1つ([0]または必要な値を使用)からデータにアクセスするか、クエリセットをループします。

+0

オブジェクトを削除しました。 incoming_meter_daily_totalから取得します。それでも価値はありません。プレースホルダの値が表示されています。上記のコードを更新してrelfectします。 –

+0

このようなモデルのデータにアクセスしていますか?その場合、モデルクラスから作成されたオブジェクトが表示されず、特に操作したいデータが記録されているレコードエントリも表示されません。ビューコードの他の場所でこれを行いますか? –

+0

上記のコードで私のビューがどのように構成されているかを追加しました。私はいくつかの種類の不一致があることを知っています。私はそれを理解できません。詳細ビュー機能に同様のコードを追加しようとしましたが、成功しませんでした。あなたの時間をありがとう、それは感謝しています。 –

関連する問題