هل من الممكن إعادة تعريف العكس في مشروع django؟
-
19-09-2019 - |
سؤال
لدي بعض المنطق المخصص الذي يجب تنفيذه كل مرة يتم عكس عنوان 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