سؤال

أحيانًا أقوم في الكود الخاص بي بتمرير الحصول على المعلمات باستخدام عناوين URL.أحد السيناريوهات المحددة هو أنه إذا لم يقوم المستخدم بتسجيل الدخول، ولكنه قام بوضع عنوان URL لصفحة تتطلب تسجيل الدخول، فستتم مطالبته بتسجيل الدخول أولاً.

في هذه الحالة قد يكون لدي عنوان URL مثل: www.example.com/home/#/main/.

نهاية عنوان URL /#/main/ هو للزاوية.ومع ذلك، في جانغو عندما أفعل ما يلي للحصول على next المعلمة أعلاه، أفعل هذا:

self.request.GET.get('next', self.redirect_url)

المشكلة هي أنه في هذه الحالة، next يوفر كل شيء ما عدا الجزء الزاوي، لذلك أحصل على: www.example.com/home/.

هل هناك أي طريقة للحصول على الجزء المتبقي من عنوان URL أيضًا؟

هل كانت مفيدة؟

المحلول

يجب عليك ترميز عنوان url قبل إضافته كمعلمة.بعد ذلك سيتحول إلى %23 ولن يُدخل فاصل المرساة بعد الآن، والذي يتم التعامل معه من جانب العميل فقط كما هو موضح في KVISH.

نصائح أخرى

يبدو أنك لا تستطيع ذلك.لا يرى Django حتى المرساة، ويتم التعامل معها كلها على العميل (المتصفح).

كيفية التعرف على مرساة في عنوان url في جانغو؟

الطريقة التي تمكنت بها من التغلب على ذلك هي استخدام jQuery لتعيين حقل إدخال مخفي لموقع التجزئة، والذي يمكن الحصول عليه على النحو التالي:

window.location.hash

يتم إرسال التجزئة مع النموذج ويمكنني أخذها من هناك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top