مواجهة مشكلة مع نظام URL الخاص بملف تعريف المستخدم مثل example.com/username في Django

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

سؤال

في تطبيق Django ، أحتاج إلى إنشاء عناوين URL لمستخدم مستخدم Twitter مع بنية التالية مثل:

  • example.com/<username>
  • example.com/<username>/friends
  • example.com/<username>/blog
  • example.com/<username>/some-page
  • example.com/<username>/some-other-page

urls.py:

urlpatterns = patterns('profiles.views',
    url(r'^(?P<account_name>[a-zA-Z0-0_.-]+)/$', 'show_profile', name='profiles_show_profile'),
    url(r'^(?P<account_name>[a-zA-Z0-0_.-]+)/friends/$', 'show_friends', name='profiles_show_blog'),
    url(r'^(?P<account_name>[a-zA-Z0-0_.-]+)/blog/$', 'show_blog', name='profiles_show_blog'),
)

مشكلتي الأولى هي ذلك أثناء example.com/<username> يعمل بشكل جيد example.com/<username>/any-other-page لا. ينتهي بهم المطاف في show_profile عرض بدلا من وجهة نظرهم الخاصة.

ملحوظة: كل شيء يعمل بشكل جيد إذا جعلت عناوين URL تغيير بنية عنوان URL إلى example.com/user/<username>

ماذا أفعل خطأ هنا؟ يرجى تقديم النصيحة.

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

شكرًا

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

المحلول

لا أرى لماذا لا تعمل عناوين URL الخاصة بك. يمكنك محاولة نقل النمط الأول إلى النهاية ، بحيث يكون للأنماط الأخرى فرصة للمطابقة أولاً. المشكلة التي تصفها تبدو مثل example.com/user/any-page, ، يتم مطابقة النمط "المستخدم/أي صفحة" كاسم الحساب. إن regex التي تظهرها لن تفعل ذلك ، ولكن ربما يكون الكود الفعلي مختلفًا قليلاً؟

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