Py学习  »  Django

如果变量没有保存到数据库中,如何将变量从一个django视图传递到另一个django视图

Styxin • 4 年前 • 113 次点击  

我想将变量从我的主视图传递到我的offer视图,但我不想将值从我的主视图保存到数据库。我该怎么做呢?

我试着在会话中调用它,也试着从home变量中请求它,但是即使它不起作用,我还是得到一个nonetype。请注意,我不想保存home函数中的任何变量,我只想将它们传递给offer函数。我试图传递的变量是品牌和模型。

def home(request):
    if request.method == 'POST':
        form = ContactForm(request.POST)
        posts = CustomUser.objects.all()
        if form.is_valid():
            print(posts)
            #form.save() -- this is what is used to save the form unquote this to save form to custo user
            form = ContactForm()
            brand = request.POST.get('brand').upper
            model = request.POST.get('model').upper
            brandquote = str(brand)
            modelquote = str(model)
            args = {'form': form, 'posts':posts,}
            url1 ='https://www.ebay.com/sch/i.html?_from=R40&_sacat=0&LH_BIN=1&_nkw='
            url2= '&_dcat=9355&rt=nc&LH_ItemCondition=3000'
            url = (url1 + str(request.POST.get('brand')) + '+' + str(request.POST.get('model')) + url2)
            source = requests.get(url).text
            print(url)
            soup =BeautifulSoup(source, 'lxml')



            total_price = 0
            for post in soup.find_all("li",{"class" : "s-item"}):
                price = post.find_all("span", {"class" : "s-item__price"})[0].text
                price2 = price.strip( '$' )
                price3 = price2.replace(",", "")
                price4 = price3[0:5]
                price5 = float(price4)
                price6 = round(price5)
                total_price = total_price + price6
                average = total_price / 50
                average1= average/100
                rounder = round(average1 * 50)
                quote = rounder * 362
                quote2 = round(quote * 1.6)
                print("₦%d" % quote)
            return render(request, 'quote/home2.html',{'brand':brand, 'model':model, 'quote' : quote,'quote2': quote2, 'date':datetime.date.today() + datetime.timedelta(days=1),'date2':datetime.date.today() + datetime.timedelta(days=2),'date3':datetime.date.today() + datetime.timedelta(days=3),})
    else:
        form = ContactForm()
    return render(request, 'quote/home.html', {'form': form})

 def offer(request):
    if request.method == 'POST':
        print(request.POST)
        state = request.POST.get('state')
        address = request.POST.get('address')
        date = request.POST.get('date')
        time = request.POST.get('time') + 'PM'
        number = request.POST.get('number')
        return render(request, 'quote/offer.html', {'state':state, 'address':address,'date':date,'time':time, 'number':number,})

    else:
        return redirect('quote:home')
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/46810
 
113 次点击