2017-12-09 11 views
0

JavaScriptを使って動的に作成されたテーブルを持つテンプレートがあります。次に、<td name="plu"></td>タグ内の送信ボタンのみの値で検索し、モデル内のCharFieldにjsonとして保存するためにそれを処理します。私はメソッドの投稿とrequest.POST.get('plu')のビューでフォームタグを使用しようとしましたが、動作しません。その値を取得し、それをモデルメソッドで処理したいと思います。ここ は、コードの一部です:テンプレートからビューへのテーブル値の受け渡し

@login_required() 
def cash_register(request): 

    """plus = [123,345,567] 
    newtrans = Transaction() 
    newtrans.set_plu_list(plus) 
    newtrans.save()""" 
    if request.method == 'POST': 
     x = request.POST.get('plu', False) 
     # ??? 


    try: 
     products = Product.objects.all().values_list('plu_num', 'art_name', 'sales_price_brutto') 
     products_json = json.dumps(list(products), cls=DjangoJSONEncoder) 
    except Product.DoesNotExist: 
     raise Http404('Products cant\'t be found!') 

    return render(request, 'panel/cash_register.html', {'products_json': products_json}) 


class Transaction(models.Model): 

    plu_list = models.CharField(max_length=255) 
    transaction_date = models.DateField(auto_now_add=True) 
    is_ksk = models.BooleanField(default=False) 
    ksk_num = models.IntegerField(null=True) 

    def set_plu_list(self, x): 
     self.plu_list = json.dumps(x) 

    def get_plu_list(self): 
     return json.loads(self.plu_list) 

とHTML:https://pastebin.com/RFn5qNn2

答えて

1

これはあなたがすることができるものではありません。 <td>要素はフォームフィールドではありません。それらを「提出」することはできません。

値をバックエンドに送信する場合は、実際のフォーム入力を使用するか、Ajaxを使用してデータを送信する必要があります。

+0

私のjavascript関数で新しい隠し入力を作成し、それを取得して得ました、あなたの説明、ありがとう、ありがとう。 – Wakun

関連する問題