2016-06-28 14 views
0

當我經過Django的教程中,我感到困惑的形式構造的方式,這裏是link在下面的代碼是:Django的文件上傳表單構造解釋

forms.py

from django import forms 

class UploadFileForm(forms.Form): 
    title = forms.CharField(max_length=50) 
    file = forms.FileField() 

views.py

from django.http import HttpResponseRedirect 
from django.shortcuts import render 
from .forms import UploadFileForm 

# Imaginary function to handle an uploaded file. 
from somewhere import handle_uploaded_file 

def upload_file(request): 
    if request.method == 'POST': 
     form = UploadFileForm(request.POST, request.FILES) 
     if form.is_valid(): 
      handle_uploaded_file(request.FILES['file']) 
      return HttpResponseRedirect('/success/url/') 
    else: 
     form = UploadFileForm() 
    return render(request, 'upload.html', {'form': form}) 

問題:在哪裏可以找到UploadFileForm的構造函數聲明?

+2

混淆的一部分可能是Python中沒有確切的構造函數;有一個類對象的'__new__'方法(基本上是構造函數)和更廣泛的被覆蓋的'__init__'方法。查看@doniyor鏈接的Django源代碼;您的'UploadFileForm'子類'forms.Form',它繼承自'BaseForm'類。在實例化時,所有這些都調用了'BaseForm'類對象的'__init__'方法。 –

回答