سؤال

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

لدي بالفعل وظيفة التفاف حولها reverse, ، ولكن الآن أحتاج إلى طريقة لإخبار كل تطبيق مثبت لاستخدامه. التفاف حولها reverse يستخدم الخيط المحلي لحقن المعرف في عنوان URL الناتج. يمكنني كتابة هذه الوظيفة كمديه reverse, ، لكنني لا أعرف من أين أفعل الديكور الفعلي.

قيود ثابتة معتدلة: أنا بالفعل باستخدام 3 تطبيقات 3 حفلات 3، وسأضيف المزيد. حل لا يجب تطلب مني تعديل التعليمات البرمجية المصدر لجميع تطبيقات الطرف الثالث هذه. لا أستمتع بفكرة الحفاظ على تصحيحات أعلى أشجار مصدر ذات طابع ثلاثي متعددة إذا كانت هناك طريقة أسهل. أستطيع أن أجعل الوثائق واضحة تماما reverse تم تزيينها.

السؤال الأصلي: أين يمكنني إجراء مثل هذا التغيير الذي يضمن أنه ستقدم بطلب إلى كل استدعاء reverse?

سؤال بديل ممكن: ما هي طريقة أفضل للتأكد من أن كل عنوان URL - بما في ذلك أولئك الذين تم إنشاؤهم بواسطة تطبيقات الأحزاب الثالثة - يحصل على معرف المستأجر؟ راجع للشغل، أنا منفتح على طريقة أفضل للتعامل مع أي من هذا باستثناء تضمين المعرف المستأجر في عنوان URL؛ هذا القرار هو مجموعة جميلة في الحجر الآن. شكرا.

شكرا.

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

المحلول

الطريقة الوحيدة بحيث يتم استبدال django عكس ur_reverse

django.core.urlresolvers.reverse = ur_reverse

أو إذا كنت تحب ديكور السكر النحوي

django.core.urlresolvers.reverse = ur_reverse_decorator(django.core.urlresolvers.reverse )

التي لن أستين (والعديد منها سوف تصرخ)، ما لم تكن على استعداد لتغيير كل استخدام للعكس مع UR_REVERSE

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