جانغو:طباعة عنوان url للعرض دون ترميز عنوان url

StackOverflow https://stackoverflow.com/questions/47207

  •  09-06-2019
  •  | 
  •  

سؤال

هل يمكنني طباعة عنوان url /admin/manage/products/add من وجهة نظر معينة في القالب؟

هذه هي القاعدة التي أريد إنشاء رابط لها

(r'^manage/products/add/$', create_object, {'model': Product, 'post_save_redirect': ''}),

أرغب في الحصول على /manage/products/add في قالب دون ترميزه.كيف يمكنني أن أفعل هذا؟

يحرر: أنا لا أستخدم المشرف الافتراضي (حسنًا، أنا أستخدمه ولكنه موجود على عنوان url آخر)، وهذا خاص بي

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

المحلول

يمكنك استخدام get_absolute_url, ، ولكن هذا لن يعمل إلا مع كائن معين.نظرًا لأن الكائن الخاص بك لم يتم إنشاؤه بعد، فلن يعمل في هذه الحالة.

تريد استخدامها أنماط URL المسماة.إليك مقدمة سريعة:

قم بتغيير السطر في urls.py الخاص بك إلى:

(r'^manage/products/add/$', create_object, {'model': Product, 'post_save_redirect': ''}, "create-product"),

ثم، في القالب الخاص بك، يمكنك استخدام هذا لعرض عنوان URL:

{% url create-product %}

إذا كنت تستخدم Django 1.5 أو أعلى، فأنت بحاجة إلى ما يلي:

{% url 'create-product' %}

يمكنك القيام ببعض الأشياء الأكثر فعالية باستخدام أنماط عناوين URL المسماة، فهي سهلة الاستخدام للغاية.لاحظ أنها موجودة فقط في إصدار التطوير (وأيضًا 1.0).

نصائح أخرى

إذا كنت تستخدم أنماط URL المسماة يمكنك القيام بما يلي في القالب الخاص بك

{% url create_object %}

الطريقة المفضلة لإنشاء عنوان URL هي إضافة ملف get_absolute_url طريقة لفئات النموذج الخاص بك.يمكنك ترميز المسار هناك حتى تقترب على الأقل من اتباع فلسفة KISS.

يمكنك الذهاب إلى أبعد من ذلك من خلال استخدام permalink مصمم الديكور الذي يحدد المسار بناءً على تكوين عناوين url.

يمكنك قراءة المزيد في وثائق جانغو هنا.

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