Hamza Waleed2 نشر 10 سبتمبر 2023 أرسل تقرير نشر 10 سبتمبر 2023 السلام عليكم ورحمة الله وبركاته في جانغو اريد الوصول الي الid الذي امرره في ملف الurls بمعني اني كتبت هذه الurl في ملف urls.py urlpatterns = [ path('<int:id>/', views.ArticleListView.as_view(), name='article_view'), ] وامرر هذا الid من خلال الtemplates واريد الوصول لهذا المتغير في الclass based view؟؟ 1 اقتباس
0 عبدالباسط ابراهيم نشر 10 سبتمبر 2023 أرسل تقرير نشر 10 سبتمبر 2023 يمكنك الوصول إلى المتغير id الذي تم تمريره في ملف الـ urls.py في الـ class-based view باستخدام طريقة kwargs. في الـ class-based view، يمكنك استخدام طريقة kwargs للحصول على قيمة المتغير id. على سبيل المثال، إذا كان لديك طريقة get() في الـ class-based view، يمكنك الوصول إلى قيمة المتغير id باستخدام الكود التالي: def get(self, request, **kwargs): # access the id variable id = kwargs['id'] # do something with the id variable مثال على ذلك في الـ View: from django.views.generic import ListView class ArticleListView(ListView): def get(self, request, *args, **kwargs): article_id = kwargs['id'] # Now you can use the article_id variable return super().get(request, *args, **kwargs) الخطوات: تستقبل الدالة get كمعامل kwargs والذي يحتوي على جميع المتغيرات الممررة من urls. تستطيع الوصول إلى متغير id عبر kwargs['id']. الآن بإمكانك استخدام متغير article_id داخل الـView. اقتباس
0 Hamza Waleed2 نشر 10 سبتمبر 2023 الكاتب أرسل تقرير نشر 10 سبتمبر 2023 عند كتابة kwargs['id'] لا يتعرف عليها وقبل ان اطرح السؤال قمت بالحث فوجدت انه يمكن الوصول اليها عن طريق self.kwargs['id'] ولكن عند استخدامها يظهر هذا الخطأ KeyError at /blog/ 'id' بتاريخ 11 دقائق مضت قال عبدالباسط ابراهيم: يمكنك الوصول إلى المتغير id الذي تم تمريره في ملف الـ urls.py في الـ class-based view باستخدام طريقة kwargs. في الـ class-based view، يمكنك استخدام طريقة kwargs للحصول على قيمة المتغير id. على سبيل المثال، إذا كان لديك طريقة get() في الـ class-based view، يمكنك الوصول إلى قيمة المتغير id باستخدام الكود التالي: def get(self, request, **kwargs): # access the id variable id = kwargs['id'] # do something with the id variable مثال على ذلك في الـ View: from django.views.generic import ListView class ArticleListView(ListView): def get(self, request, *args, **kwargs): article_id = kwargs['id'] # Now you can use the article_id variable return super().get(request, *args, **kwargs) الخطوات: تستقبل الدالة get كمعامل kwargs والذي يحتوي على جميع المتغيرات الممررة من urls. تستطيع الوصول إلى متغير id عبر kwargs['id']. الآن بإمكانك استخدام متغير article_id داخل الـView. اقتباس
0 سمير عبود نشر 10 سبتمبر 2023 أرسل تقرير نشر 10 سبتمبر 2023 بتاريخ منذ ساعة مضت قال Hamza Waleed2: عند كتابة kwargs['id'] لا يتعرف عليها وقبل ان اطرح السؤال قمت بالحث فوجدت انه يمكن الوصول اليها عن طريق self.kwargs['id'] ولكن عند استخدامها يظهر هذا الخطأ KeyError at /blog/ 'id' يُرجى توضيح الشيفرات التي تكتبها في صنف ال View الذي يقوم بمعالجة الطلب، حتى نستطيع معرفة سبب المشكلة اقتباس
0 Mustafa Suleiman نشر 11 سبتمبر 2023 أرسل تقرير نشر 11 سبتمبر 2023 يمكنك الوصول إلى متغيرات URL في Django باستخدام الطريقة get_queryset() في طريقة العرض. class ArticleListView(generics.ListView): queryset = Article.objects.all() def get_queryset(self): queryset = super().get_queryset() id = self.kwargs['id'] queryset = queryset.filter(id=id) return queryset سيؤدي ذلك إلى تصفية مجموعة الاستعلام لتشمل فقط المقالة ذات معرف id. أيضًا تستطيع الوصول إلى متغيرات URL مباشرةً من طريقة العرض الخاصة بك باستخدام الطريقة kwargs(). class ArticleListView(generics.ListView): queryset = Article.objects.all() def get_queryset(self): id = self.kwargs['id'] return Article.objects.filter(id=id) اقتباس
السؤال
Hamza Waleed2
السلام عليكم ورحمة الله وبركاته
في جانغو اريد الوصول الي الid الذي امرره في ملف الurls
بمعني اني كتبت هذه الurl في ملف urls.py
وامرر هذا الid من خلال الtemplates
واريد الوصول لهذا المتغير في الclass based view؟؟
4 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.