簡體   English   中英

Django:“請求”不包含“方法”(POST / GET)

[英]Django: “request” does not contain the 'method' (POST/GET)

我已經為客戶創建了一個[看似]直接的表單,但是,在用戶提交表單之后,當我嘗試檢查退貨請求時,我得到了:

異常類型:AttributeError異常值:“ QueryDict”對象沒有屬性“ method”

當我檢查時,我看到請求對象僅包含表單中提交的數據,並且不包含“ method”屬性

這是表單使用的功能:

def institutionapply(request):
    print(request)
    print("request: ",request)
    a=get_ip(request)
    print (a)
    country=get_country(request)
    # if this is a POST request we need to process the form data

    if request.method == 'POST':
        # create a form instance and populate it with data from the request:
        form = institutionapply(request.POST)
        print ("form in post clause:",form)
        #print ("duration output:",form.duration)
        # check whether it's valid:
        if form.is_valid():
            print ("print form is valid")
            print (form.cleaned_data['title'])
            print (form.cleaned_data['country'])

            # process the data in form.cleaned_data as required
            # ...
            # redirect to a new URL:
            #return HttpResponseRedirect('/thanks/')
            #return redirect(name='home')
    # if a GET (or any other method) we'll create a blank form
    else:
        # create a form instance and populate it with data from the request:
        data = {'title': '', 'first': '', 'last':'', 'country':'','internationalprefix':'','phone':'','email':'','institutionname':'','institutionurl':'',}
        form = institutionform(data)
    return render(request,'app/intitutionapply.html', {'form': form})

有什么想法為什么找不到“方法”對象?

編輯:URL配置:

urlpatterns = [
    url(r'^$', views.home, name='home'),
    url(r'^InstitutionApply$', views.institutionapply, name='institutionapply'),
    url(r'^contact$', views.contact, name='contact'),
    url(r'^about', views.about, name='about'),
    url(r'^admin/', admin.site.urls),

從html模板開始,表單聲明為:

views.py中的功能

def get_country(request):
    a=get_ip(request)
    country='United States'
    g = GeoIP2(path='D:/newTelumis/newTelumis/GeoLite2-Country.mmdb')
    return country



def  get_ip(request):
    try:
        x_forward= request.META.get("HTTP_X_FORWARD_FOR")
        if x_forward:
            ip=x_forward.split(",")[0]
        else:
            ip=request.META.get("REMOTE_ADDR")
    except:
        ip=""
    return ip
def institutionapply(request):
    ...
    if request.method == 'POST':
        ...
        form = institutionapply(request.POST)

institutionapply表格代替institutionform

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM