如何在Django上通过POST传递值?

时间:2019-05-07 15:25:38

标签: python django post

我尝试与Django进行简单的数据库交互/处理。 现在,我只是做了一个简单的视图,以将数据库中的信息显示在html表上,并且我正在尝试添加一项功能,该功能会将新信息添加到数据库中。

为此,我对表中存在的每个表列都有一个输入字段,并在数据库中添加一个添加按钮。我想使其与POST方法一起使用。 POST请求将在视图上计算,该视图将在数据库中添加新值,然后使用html表重定向页面,该表随后将显示添加的信息。

但是,我还没有设法找到解决方案。

这是我目前拥有的views.py:

from orders.models import Order #my model

class OrdersList(TemplateView):
    template_name = "orderlist.html"

    def get_context_data(self, **kwargs):
        context = super(OrdersList, self).get_context_data(**kwargs)
        orders = Order.objects.all()
        #adding values from the model to the context
        context['orders'] = []
        i = 0
        for order in orders:
            context['orders'].append(i)
            context['orders'][i] = {}
            context['orders'][i]['id'] = i+1
            context['orders'][i]['market_place'] = order.market_place
            context['orders'][i]['purchase_date'] = order.purchase_date
            context['orders'][i]['purchase_time'] = order.purchase_time
            context['orders'][i]['amount'] = order.amount
            context['orders'][i]['currency'] = order.currency
            i = i + 1
        #eventually, context['orders'] will be an array of dictionaries, one for each order present in the model
        return context

和我的urls.py

from orders.views import *

urlpatterns = [
    path('', OrdersList.as_view(), name='home'),
    path('add/', AddOrder.as_view(), name='add')
]

因此,我要在将采用通过POST方法发送的值的视图上创建AddOrder类,将它们添加到数据库中,然后返回orderlist.html

但是,当我尝试在网上查找答案时,全部都在使用url()行的urls.py文件中,每个视图都具有一个功能的views.py;而我是通过urls.py上的path()和views.py上每个视图的一个类学习Django的,所以这是我尝试的方法,但我不知道该怎么做。

编辑:在这方面我还不够清楚,但是模板在表上有一个表单,该表单会将POST请求发送到/ add / url。

0 个答案:

没有答案