2016-12-16 7 views
0

Я новичок в Django, и мне было интересно, как я могу использовать URL-адрес (или любой другой способ) для отправки информации с одной веб-страницы на другую веб-страницу. Я попытался сделать глобальную переменную и вернуть информацию, но она не сработала. В этом примере мне нужно отправить опубликованные данные для quote на следующую страницу при нажатии кнопки отправки.Использование URL-адреса Django для отправки опубликованной информации на другую страницу

Вот моя модель:

from django.db import models 

class OrderEntry(models.Model): 
    quote_num = models.CharField(max_length=50, primary_key=True) 
    customer = models.CharField(max_length=100) 
    cust_po = models.CharField(max_length=50) 
    datetime = models.DateTimeField(auto_now=True, editable=True) 

Форма:

from django import forms 

class Details(forms.Form): 
    quote_number = forms.CharField(max_length=50, min_length=3) 
    customer = forms.CharField(max_length=100) 
    po_number = forms.CharField(max_length=50, min_length=4) 

Вид:

from django.shortcuts import render 
from django.http import HttpResponseRedirect, HttpResponse 
from orders.models import OrderEntry, Items 
from orders.forms import Details, ItemDetails 

def entry(request): 
if request.method == 'POST': 
    form = Details(request.POST) 
    if form.is_valid: 
     customer = request.POST.get('customer') 
     quote = request.POST.get('quote_number') 
     purchase = request.POST.get('po_number') 
     obj_oe = OrderEntry(customer = customer, quote_num = quote, 
      cust_po = purchase) 
     obj_oe.save() 
     return HttpResponseRedirect('/entry/items') 
else: 
    form = Details(
    initial={'quote_number': 'QS', 'po_number': 'PO-'} 
    ) 
return render(request, 'order.html', {'form': form}) 

def entry_items(request): 
if request.method == 'POST': 
    form = ItemDetails(request.POST) 
    if form.is_valid: 
     # quote = quote value 
     a1 = request.POST.get('i1') 
     a2 = request.POST.get('i2') 
     a3 = request.POST.get('i3') 
     a4 = request.POST.get('i4') 
     a5 = request.POST.get('i5') 
     a6 = request.POST.get('i6') 
     a7 = request.POST.get('i7') 
     a8 = request.POST.get('i8') 
     a9 = request.POST.get('i9') 
     a10 = request.POST.get('i10') 
     obj_oi = Items(quote_num = quote, item_1 = a1, item_2 = a2, item_3 = a3, item_4 = a4, 
      item_5 = a5, item_6 = a6, item_7 = a7, item_8 = a8, item_9 = a9, 
      item_10 = a10) 
     obj_oi.save() 
     return HttpResponseRedirect('/entry') 
else: 
    form = ItemDetails 
return render(request, 'order_items.html', {'form': form}) 

Наконец, URLs:

from django.conf.urls import url 
from django.contrib import admin 
from orders import views_orders 

urlpatterns = [ 
url(r'^admin/', admin.site.urls), 
url(r'^entry/$', views_orders.entry), 
url(r'^entry/items', views_orders.entry_items), 
] 

Итак, как я могу получить значение для quote в переменной на следующей странице?

Благодарим за помощь.

ответ

1

Попробуйте

HttpResponseRedirect(reverse('namespace:name', args=(var_to_send,)))