2013-07-19 9 views
26

के बिना एक Django फॉर्म हो सकता है क्या मेरे पास मेरे टेम्पलेट में एक फॉर्म हो सकता है जिसे किसी मॉडल द्वारा समर्थित नहीं किया जाता है। मुझे डेटा को स्टोर करने की आवश्यकता नहीं है, केवल उस डेटा को दृश्य में अपने स्वयं के POST अनुरोध उत्पन्न करने की आवश्यकता है।क्या मेरे पास मॉडल

टेम्पलेट - टेक्स्ट फ़ील्ड के साथ फ़ॉर्म। देखें - फ़ॉर्म से डेटा प्राप्त करें, और एक और अनुरोध उत्पन्न करें।

फ्लो -> फार्म प्रस्तुत एक यूआरएल जो दृश्य "

def form_handle(request): 
    if request.method=='POST' 
    form = request.POST 

    #blah blah encode parameters for a url blah blah 
    #and make another post request 

कॉल करने के लिए लगता है लेकिन इस फार्म चर में केवल CSRF टोकन डालता वहाँ किसी तरह मैं उन लोगों के पाठ फ़ील्ड का उपयोग कर सकते है। मेरी form_handle ध्यान में रखते हुए टेम्पलेट?

मुझे पता है कि एक मॉडल के साथ यह करने के लिए, लेकिन यह समझ नहीं सकता है!

उत्तर

37

हाँ। यह बहुत संभव है। आप Form objects पर पढ़ सकते हैं। यह होगा वैसे ही आप भी uld ModelForm का इलाज करें, सिवाय इसके कि आप मॉडल से बंधे नहीं हैं, और आपको स्पष्ट रूप से सभी फॉर्म विशेषताओं को घोषित करना होगा।

def form_handle(request): 
    form = MyForm() 
    if request.method=='POST': 
     form = MyForm(request.POST) 
     if form.is_valid(): 
      cd = form.cleaned_data 
      #now in the object cd, you have the form as a dictionary. 
      a = cd.get('a') 

    #blah blah encode parameters for a url blah blah 
    #and make another post request 
    #edit : added ": " after if request.method=='POST' 

और

class MyForm(forms.Form): #Note that it is not inheriting from forms.ModelForm 
    a = forms.CharField(max_length=20) 
    #All my attributes here 

टेम्पलेट में:

<form action="{% url form_handle %}" method="POST">{% csrf_token %} 
    {{form.as_p}} 
    <button type="submit">Submit</button> 
</form> 
+2

बहुत बढ़िया, पूरी तरह से forms.Form बात की अनदेखी। यह काम करना चाहिए! धन्यवाद!!! – AdRoiT

संबंधित मुद्दे