• 1

ما هو Slug في جانغو Django؟ ومتى يستخدم؟

قرأت في توثيق جانغو Django في جزء Glossary عن شيء يُسمى "slug". لست متأكدًا تمامًا من ماهيته، لكنني أعلم أن له علاقة بعناوين URL. كيف ومتى من المفترض أن يتم استخدام slug؟

2 اشخاص أعجبوا بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 1

يأتي مصطلح "slug" من المقالات والصحف وهو الاسم الغير رسمي الذي يُطلق على قصة أو مقالة أثناء عملية الإنتاج. أما في جانغو يتم استخدام حقل slug لتخزين وإنشاء عناوين URL صالحة لصفحات الويب التي تم إنشاؤها ديناميكياً. بشكل عام باستخدام البيانات التي تم الحصول عليها بالفعل. على سبيل المثال ، يستخدم slug عنوان المقالة لإنشاء عنوان URL.

<title> damn cat </title>
<content> Wonderful movie </content>
<slug> Wonderful-movie </slug>

يمكنك إنشاء slug من خلال SlugField:

slug = models.SlugField(max_length=90)


وينصح بإنشاء الرابط الثابت عن طريق تابع، بالنظر إلى العنوان أو جزء آخر من البيانات، بدلاً من تعيينه يدوياً. مثال:

# الآن لنفرض لدينا النموذج التالي
class art(models.Model):
    title = models.CharField(max_length=59)
    content = models.TextField(max_length=1900)
    slug = models.SlugField(max_length=50)
#وباسم ذو معنى URL يمكنك الإشارة إلى هذا الكائن بعنوان
# :بالشكل URL بحيث يكون عنوان  Article.id على سبيل المثال استخدام 
www.slu.com/art/23
# أو 
www.slu.com/art/damn cat
#20% لذا يجب استبدالها ب URL وبما أن المسافات غير مسموحة في عناوين 
www.example.com/art/damn%20cat
#slugأما باستخدام 
# - يمكننا استبال الفراغات ب
www.example.com/article/damn-cat

كما يمكنك استخدام التابع slugify لاستخدام ال slug كعنوان:

from django.template.defaultfilters import slugify
class art(models.Model):
    title = models.CharField(max_length=90)
    def slug(self):
        return slugify(self.title)

كما يمكنك استخدام الوسيط unique=True إذا أردت جعله فريداً:

slug = models.SlugField(max_length=90, unique=True)

 

تمّ تعديل بواسطة Ali Haidar Ahmad
1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0

يستخدم  "slug" في تحسين search engine optimization للموقع لكي يظهر في اعلي نتائج البحث و تسخدمه لكي تنشئ unique url لكل صفحه

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0

ال slug هو طريقة لانشاء url له معنى وصالح فى نفس الوقت, كمثال اذا كان لدينا صفحة html تعبر عن مقالة كالشكل التالى

<title> The 46 Year Old Virgin </title>
<content> A silly comedy movie </content>
<slug> the-46-year-old-virgin </slug>

وانشأنا لها django model بالشكل الاتى:

class Article(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField(max_length=1000)
    slug = models.SlugField(max_length=40)

ماهى افضل طريقة لانشاء url يشير لهذا الموديل؟ 

اولا من الممكن ان نصل له عن طريق الid فيصبح الurl كالشكل التالى

www.example.com/article/23

او من الممكن ان نصل له عن طريق attribute الslug كما بالشكل التالى

www.example.com/article/The 46 Year Old Virgin

ولكن تلك الطريقة فيها مشكلة لان المسافات غير مسموح بها فى الurl فبالتالى يتغير شكل الurl ليصبح كالاتى:

www.example.com/article/The%2046%20Year%20Old%20Virgin

ومن الواضح اخى الفاضل ان كلا الطريقتين اعلى ليسو جيدين , فاول طريقة ستجد ان الurl لا يعطى وصفا عما يتضمنه فانت لا تستطيع ان تعرف عما تتكلم المقالة بمجرد معرفة الid اللذى هو 23

والطريقة الثانية ليست جيدة ايضا لانها صعبة القراءة وتؤذى العين,وهنا يأتى دور الslug

فنجعل عنوان الurl مثل حقل الslug فيكون كالتالى

www.example.com/article/the-46-year-old-virgin

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0
بتاريخ 1 ساعة قال Ziyad Hasan:

يستخدم  "slug" في تحسين search engine optimization للموقع لكي يظهر في اعلي نتائج البحث و تسخدمه لكي تنشئ unique url لكل صفحه

مثال لو لديك منتج يسمي iphone فسوف تقوم slug بانشاء اسم مميز له باضافه رقم 1-iphone و يصبح الرابط مميز و seo friendly بدلا من استخدام id للمنتج في الرابط

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن