将表值从模板传递到视图

时间:2017-12-09 20:45:39

标签: python html django

我有一个表格的模板,它是由javascript动态创建的。然后我希望在<td name="plu"></td>标签内只使用提交按钮检索并在视图中处理它以将json保存到模型中的CharField中。我尝试在表单中使用带有方法发布和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 个答案:

答案 0 :(得分:1)

这不是你能做的事情。 <td>个元素不是表单字段;你不能“提交”它们。

如果要将值提交到后端,则必须使用实际的表单输入,或使用Ajax发送数据。