জ্যাঙ্গো কাঠামোয় ফর্ম ক্ষেত্র থেকে কীভাবে মূল্য পাবেন?


104

জাঙ্গো কাঠামোয় আমি ফর্ম ক্ষেত্রগুলি থেকে কীভাবে মান পেতে পারি? আমি এটি টেমপ্লেটগুলিতে নয়, দর্শনগুলিতে করতে চাই

উত্তর:


129

একটি দৃশ্যে একটি ফর্ম ব্যবহার করে এটি বেশ ব্যাখ্যা করে।

কোনও দৃশ্যে কোনও ফর্মটি প্রক্রিয়াকরণের জন্য আদর্শ প্যাটার্নটি দেখতে এই জাতীয় দেখাচ্ছে:

def contact(request):
    if request.method == 'POST': # If the form has been submitted...
        form = ContactForm(request.POST) # A form bound to the POST data
        if form.is_valid(): # All validation rules pass
            # Process the data in form.cleaned_data
            # ...

            print form.cleaned_data['my_form_field_name']

            return HttpResponseRedirect('/thanks/') # Redirect after POST
    else:
        form = ContactForm() # An unbound form

    return render_to_response('contact.html', {
        'form': form,
    })

এই আবদ্ধ ফর্মের উদাহরণ:class ContactForm(forms.Form): my_form_field_name = forms.CharField()
বব স্টেইন

ক্ষেত্রগুলি আসলে form.data বা form.cleaned_data এ থাকা অবস্থায় কেন কোনও টেম্পলেট {{form.name_of_field}? চালাতে পারে?
ব্যবহারকারী 3245268

56

তোমারটা নাও:

def my_view(request):

    if request.method == 'POST':
        print request.POST.get('my_field')

        form = MyForm(request.POST)

        print form['my_field'].value()
        print form.data['my_field']

        if form.is_valid():

            print form.cleaned_data['my_field']
            print form.instance.my_field

            form.save()
            print form.instance.id  # now this one can access id/pk

দ্রষ্টব্য: ক্ষেত্রটি এটি উপলব্ধ হওয়ার সাথে সাথে অ্যাক্সেস করা হবে।


4
এই উত্তরটি সর্বোত্তম বিকল্পগুলির সংক্ষিপ্তসার করে - কাঁচা পোষ্টের ডেটা অ্যাক্সেস করা, অবৈধ ফর্ম ক্ষেত্র এবং অবশেষে বৈধ ফর্ম ক্ষেত্রগুলি।
সার্জ মেরজলিয়াকভ

2
সম্ভবত আমি আজ আমার পর্দার দিকে খুব সন্ধান করে চলেছি, তবে form['my_field'].value()পোষ্ট অনুরোধে ফর্মের মানগুলিতে অ্যাক্সেসের জন্য খুব সহজ সমাধানটি পেতে আমার এক ঘন্টা সময় লেগেছে । কিছু দিন: |
আয়নালকেমিস্ট

28

আপনি আপনার ডেটা যাচাই করার পরে এটি করতে পারেন।

if myform.is_valid():
  data = myform.cleaned_data
  field = data['field']

এছাড়াও, জাঙ্গো ডক্স পড়ুন। তারা নির্ভুল.


13
আপনার ডেটা পরিষ্কার করার জন্য বি 4 সম্পর্কে কী বলা যায়?
সিরিয়েনার্থস

2
আপনি আপনার ডেটা পরিষ্কার করার আগে কেবল অনুরোধ থাকবে Oপষ্ট ফর্মের উদাহরণ সহ সঞ্চিত থাকে। পরিষ্কার করা হ'ল ফর্ম ক্ষেত্রগুলির সাথে পোষ্টের ডেটা সংযুক্ত করে। পরিষ্কার করার আগে আপনাকে অনুরোধের সাথে কাজ করতে হবে O
ফ্রেব

প্রাথমিক সেট করা থাকলে ফর্মফিল্ডের মান পাওয়া সম্ভব?
ফায়ডো

8

ফর্ম থেকে ডেটা পুনরুদ্ধার করতে যা পোস্ট অনুরোধ প্রেরণ করে আপনি এটি এটি করতে পারেন

def login_view(request):
    if(request.POST):
        login_data = request.POST.dict()
        username = login_data.get("username")
        password = login_data.get("password")
        user_type = login_data.get("user_type")
        print(user_type, username, password)
        return HttpResponse("This is a post request")
    else:
        return render(request, "base.html")

7

আমি জাঙ্গো ১.7+ এবং পাইথন ২. 2.+ ব্যবহার করি, উপরের সমাধানটি ডোজ ব্যবহার করে না। এবং ফর্মের ইনপুট মানটি নীচের মতো পোষ্ট ব্যবহার করতে পারা যায় (উপরে একই ফর্মটি ব্যবহার করুন):

if form.is_valid():
  data = request.POST.get('my_form_field_name')
  print data

আশাকরি এটা সাহায্য করবে.

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.