إنشاء روابط ديناميكية باستخدام علامة URL في Django

0

 يمكن إنشاء روابط ديناميكية باستخدام علامة URL في Django باستخدام المعلمات. المعلمات هي متغيرات يمكن استخدامها لتحديد جزء من URL. على سبيل المثال، يمكننا إنشاء رابط ديناميكي لصفحة المستخدم باستخدام المعلمة التالية:


Python
from django.urls import path

from myapp.views import user_detail

urlpatterns = [
    path("users/<int:user_id>/", user_detail, name="user_detail"),
]

سيؤدي هذا إلى إنشاء رابط يشبه ما يلي:

/users/123/

حيث 123 هو معرف المستخدم.

لإنشاء رابط ديناميكي باستخدام علامة URL، نستخدم معلمة في اسم المسار. على سبيل المثال، في المثال السابق، نستخدم المعلمة user_id في اسم المسار.

ثم، في عرضنا، يمكننا استخدام المعلمة لتحديد جزء من URL. على سبيل المثال، في عرض user_detail، يمكننا استخدام المعلمة user_id لتحديد المستخدم الذي نريد عرض تفاصيله.

Python
from django.shortcuts import render

from myapp.models import User

def user_detail(request, user_id):
    user = User.objects.get(id=user_id)
    context = {
        "user": user,
    }
    return render(request, "user_detail.html", context)

في هذا المثال، نستخدم المعلمة user_id لاسترداد المستخدم من قاعدة البيانات. ثم، نستخدم المستخدم في سياق عرضنا.

يمكننا أيضًا استخدام المعلمات لتحديد معلمات إضافية في URL. على سبيل المثال، يمكننا إنشاء رابط ديناميكي لصفحة المستخدم باستخدام المعلمتين التاليتين:

Python
from django.urls import path

from myapp.views import user_detail

urlpatterns = [
    path("users/<int:user_id>/<str:username>/", user_detail, name="user_detail"),
]

سيؤدي هذا إلى إنشاء رابط يشبه ما يلي:

/users/123/johndoe/

حيث 123 هو معرف المستخدم و johndoe هو اسم المستخدم.

لإنشاء رابط ديناميكي باستخدام معلمات متعددة، نستخدم معلمات متعددة في اسم المسار. على سبيل المثال، في المثال السابق، نستخدم المعلمتين user_id و username في اسم المسار.

ثم، في عرضنا، يمكننا استخدام المعلمات لتحديد أجزاء مختلفة من URL. على سبيل المثال، في عرض user_detail، يمكننا استخدام المعلمة user_id لاسترداد المستخدم من قاعدة البيانات، ويمكننا استخدام المعلمة username لعرض اسم المستخدم في عرضنا.

Python
from django.shortcuts import render

from myapp.models import User

def user_detail(request, user_id, username):
    user = User.objects.get(id=user_id)
    context = {
        "user": user,
        "username": username,
    }
    return render(request, "user_detail.html", context)

في هذا المثال، نستخدم المعلمة user_id لاسترداد المستخدم من قاعدة البيانات، ونستخدم المعلمة username لعرض اسم المستخدم في عرضنا.

لا يوجد تعليقات

أضف تعليق