يمكن إنشاء روابط ديناميكية باستخدام علامة URL في Django باستخدام المعلمات. المعلمات هي متغيرات يمكن استخدامها لتحديد جزء من URL. على سبيل المثال، يمكننا إنشاء رابط ديناميكي لصفحة المستخدم باستخدام المعلمة التالية:
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
لتحديد المستخدم الذي نريد عرض تفاصيله.
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. على سبيل المثال، يمكننا إنشاء رابط ديناميكي لصفحة المستخدم باستخدام المعلمتين التاليتين:
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
لعرض اسم المستخدم في عرضنا.
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
لعرض اسم المستخدم في عرضنا.
ليست هناك تعليقات:
إرسال تعليق