البرمجة

استرجاع أسماء المستخدمين في Django باستخدام Django REST framework

عندما تستخدم كود Django الخاص بك لاسترجاع جميع المستخدمين من نموذج الـ User، يمكنك بسهولة الحصول على أسمائهم بدلاً من عرض عدد المستخدمين فقط. يبدو أنك تستخدم Django REST framework، ولذا يمكنك تحسين كودك ليعيد أسماء المستخدمين بشكل صحيح.

للقيام بذلك، يمكنك استخدام سيريالايزر Serializer لتحويل نموذج المستخدم (User) إلى تنسيق يمكن عرضه بسهولة، ثم استخدام هذا التنسيق لإرجاع بيانات المستخدمين بدلاً من العدد فقط. إليك كيف يمكنك تعديل كودك:

python
from django.contrib.auth.models import User from rest_framework.response import Response from rest_framework.decorators import api_view from .serializers import UserSerializer # قم بتعديل المسار حسب موقع سيريالايزر المستخدم @api_view(['GET']) def get_all_users(request): users = User.objects.all() serializer = UserSerializer(users, many=True) return Response(serializer.data)

في هذا المثال، يتم استيراد UserSerializer الذي يحتوي على التنسيق الذي تريد عرضه. ثم يتم تحويل جميع المستخدمين إلى هذا التنسيق باستخدام السيريالايزر، وأخيرًا يتم إرجاع بيانات المستخدمين باستخدام Response(serializer.data).

تأكد من تعديل المسار الخاص بـ UserSerializer وفقًا للموقع الصحيح لديك. بهذا الشكل، ستحصل على قائمة تحتوي على معلومات المستخدمين بدلاً من عدد المستخدمين فقط.

المزيد من المعلومات

إذا كنت ترغب في إضافة مزيد من المعلومات وتعميق فهمك حول استرجاع بيانات المستخدمين في Django، يمكننا استكمال الشرح.

في الكود السابق، تم استخدام Django REST framework لبناء واجهة API. السطور التي يجب عليك أن تكون قد أنشأتها:

  1. Serializer:

    • يمثل UserSerializer الذي قمت بتوجيهه إلى from .serializers import UserSerializer نموذج الـ Serializer. هذا يحدد كيف يجب تحويل نموذج المستخدم إلى بيانات يمكن عرضها.
  2. مسار الـ Serializer:

    • يتوجب عليك التأكد من أنه تم تحديد مسار صحيح للـ Serializer في ملف الـ serializers.py. يمكنك استخدام مسار مثل users/serializers.py، ويجب أن يحتوي على شيفرة مشابهة للتالية:

      python
      from rest_framework import serializers from django.contrib.auth.models import User class UserSerializer(serializers.ModelSerializer): class Meta: model = User fields = ['id', 'username', 'email'] # قم بتعديل الحقول حسب احتياجاتك
  3. ملف الـ URL:

    • يجب عليك تعيين مسار لدالة get_all_users في ملف الـ URL الخاص بتطبيقك. يمكنك إنشاء ملف مثل users/urls.py وتحديد مسار لدالة get_all_users:

      python
      from django.urls import path from .views import get_all_users urlpatterns = [ path('get_all_users/', get_all_users, name='get_all_users'), ]
  4. ربط ملفات الـ URL:

    • لا تنسى ربط ملفات الـ URL في ملف urls.py الرئيسي لمشروعك. يمكنك فعل ذلك باستخدام include في urls.py:

      python
      from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('api/', include('users.urls')), # قم بتعديل اسم التطبيق وفقًا لما أنشأته ]

باستخدام هذه الخطوات، يمكنك الآن الوصول إلى بيانات المستخدمين عبر مسار مثل /api/get_all_users/. تأكد من تعديل الحقول في UserSerializer حسب احتياجاتك لتتمكن من الحصول على المزيد من المعلومات حول كل مستخدم.

زر الذهاب إلى الأعلى