التمرين - إنشاء طرق العرض

مكتمل

نريد تحديث تطبيقنا لتوفير قائمة ملاجئ الكلاب. نريد أيضاً أن يسمح التطبيق لشخص ما بالنقر فوق ملجأ واحد أو الضغط عليه لرؤية التفاصيل. سنقوم بذلك عن طريق إنشاء طريقتي عرض ثم تسجيل المسارات المناسبة.

إنشاء طرق العرض

  1. في Visual Studio Code، افتح dog_shelters/views.py.

  2. في نهاية السطر الذي يحمل النص from django.shortcuts import render، أضف , get_object_or_404. يجب أن يحتوي السطر الآن على ما يلي:

    from django.shortcuts import render, get_object_or_404
    
  3. أسفل السطر الذي يحمل النص from django.shortcuts import render، أضف تعليمات Python البرمجية التالية لاستيراد النماذج الخاصة بك:

    from . import models
    
  4. في نهاية views.py، أضف التعليمات البرمجية التالية لتحميل جميع الملاجئ، وقم بإنشاء كائن السياق للقالب، وبعد ذلك اعرض القالب للمستخدم. سيصبح ذلك طريقة عرض القائمة الخاصة بالملاجئ والصفحة الافتراضية لموقعنا.

    def shelter_list(request):
        shelters = models.Shelter.objects.all()
        context = {'shelters': shelters}
        return render(request, 'shelter_list.html', context)
    
  5. في نهاية views.py، أضف التعليمات البرمجية التالية لتحميل ملجأ محدد من خلال pk الخاص به أو المفتاح الأساسي، وقم بإنشاء كائن السياق للقالب، وبعد ذلك اعرض القالب للمستخدم. سيصبح ذلك هو الصفحة التي تشمل التفاصيل الخاصة بأحد الملاجئ.

    def shelter_detail(request, pk):
        shelter = get_object_or_404(models.Shelter, pk=pk)
        context = {'shelter': shelter}
        return render(request, 'shelter_detail.html', context)
    

إنشاء URLconf

لتكون طرق العرض لدينا قابلة للاستدعاء، نحتاج إلى تسجيل المسارات المناسبة.

  1. قم بإنشاء ملف جديد في dog_shelters باسم urls.py.

  2. أضف التعليمات البرمجية التالية لتسجيل المسارات لطريقتي العرض التي أنشأناهما:

    from django.urls import path
    from . import views
    
    urlpatterns = [
        path('', views.shelter_list, name='shelter_list'),
        path('shelter/<int:pk>', views.shelter_detail, name='shelter_detail'),
        # More patterns to come later
    ]
    

لاحظ أننا أنشأنا مساراً افتراضياً ('') للإشارة إلى طريقة عرض shelter_list الخاصة بنا. وقمنا أيضاً بتسجيل shelter/<int:pk> لتخصيص مرجع لطريقة عرضنا shelter_detail. كما موضح سابقاً، سيتم تمرير pk كالمعلمة pk إلى shelter_detail.

تسجيل URLconf في مشروعنا

يستخدم Django ملف urls.py أساسياً واحداً كـ URLconf الخاص به. ونتيجة لذلك، نحن بحاجة إلى التأكد من أن الملف الذي أنشأناه تم تسجيله بشكل صحيح.

  1. افتح project/urls.py.

  2. باتجاه أسفل الملف، ابحث عن السطر 17، الذي يحمل النص:

    from django.urls import path
    

    في نهاية السطر، أضف , include. يجب أن يكون السطر الجديد رقم 17 الآن كما يلي:

    from django.urls import path, include
    
  3. أسفل السطر الذي يحمل النص TODO: Register URLconf، أضف الآتي:

    # TODO: Register URLconf
    path('', include('dog_shelters.urls')),
    

    هام

    يتطلب وجود الفاصلة اللاحقة.

  4. احفظ جميع الملفات من خلال تحديد "File">"Save All".