اذهب إلى المحتوى
  • 0

كيفية إعادة توجيه المستخدم إلى الصفحة السابقة في جانغو Django؟

Mohssen A Mohssen

السؤال

أريد أن يتم عرض نموذج Form وعندما يقوم المستخدم بإرساله (أي عندما يقوم بعمل submit لهذا النموذج) يتم إعادة توجيهه إلى نفس الصفحة مرة أخرى.

قراءت أنه يمكن عمل هذا الأمر من خلال HTTP_REFERER  ولكن لم أفهم كيف أقوم بهذا الأمر في شكل كود في جانغو Django؟

كيف يتم إرجاع المستخدم إلى نفس الصفحة مرة أخرى بعد إرسال نموذج Form في جانغو Django؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

في ملف views.py في الدالة الموجهة للصفحة التي يوجد بها ال form هي نفسها الدالة المستقبلة لبيانات ال form ستضع ال URL الموجه لها في الaction الخاص بالform 

<form action="{% url 'name_url' %}" method="post">

هذه الدالة في ملف الviews.py عند الحالة الطبيعي لعرض ال form تكون GET

سوف نفحص اذا كانت الطريقة لعرض الدالة POST :

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

سوف نعمل إستلام للبيانات من ثم عمل الاجراء الذي تريده عليها او اي كان

وبعد الانتهاء سوف نرجع الموجه الى نفس الصفحة انظر للمثال التوضيحي للدالة :

def contact(request):
    if request.method == 'POST':
        name = request.POST.get('name')
        email = request.POST.get('email')
        message = request.POST.get('message')
        Contact.objects.create(name=name, email=email, message=message)
        return render(request, '/url/forms.html') #   من الفورم ستنفذ هذا السطر وترجع على نفس الصفحة submit هنا اذا ضغطت "POST" بعد استلام البيانات من الفورم 
      return render(request, '/url/forms.html') #  اذن عند الضغط على عرض الفورم ستنفذ هذا السطر"GET" دون الدخول في الشرط سيكون عرض فقط للفورم

ارجو ان تكون فهمت الفكرة تحياتي.

تم التعديل في بواسطة Haroun Taha
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • -1

يمكنك فعلها بكل بساطة في ملف:views.py

قم بإرجاع نفس الصفحة بدل recipes/create-update.html لدالة التى تستقبل الفورم

return render(request, "recipes/create-update.html", context) 

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...