Amer Abdallah نشر 4 سبتمبر 2021 أرسل تقرير نشر 4 سبتمبر 2021 لدي نموذج كالتالي: class User(models.Model): name = models.CharField(max_length=200) bio = models.CharField(max_length=20000, blank=True) GENDER_CHOICES = ( ('M', 'Male'), ('F', 'Female'), ) gender = models.CharField(max_length=20, choices=GENDER_CHOICES) وأستخدم النموذج السابق في ملف العرض view التالي: def profile(request): users = User.objects.filter(bio='') return object_list(request, template_name='polls/profiles.html', queryset=users, paginate_by=5) لكن المشكلة هي عندما أحاول أن أقوم بطباعة الخاصية gender أحصل على M أو F بدلًا من Male أو Female، كيف أقوم بطباعة اسم الخاصية بالكامل؟ 2 اقتباس
1 سامح أشرف نشر 4 سبتمبر 2021 أرسل تقرير نشر 4 سبتمبر 2021 يوفر لك Django إمكانية إستخدام أي خاصية من خلال كتابة التالي: <النموذج>.get_<اسم الخاصية>_display وبالتالي لطباعة القيمة الكاملة للخاصية gender في النموذج User ستكون كالتالي: {{ user.gender}} # M {{ user.get_gender_display }} # Male وفي حالة إستخدام Jinja2 كمحرك القوالب، فيجب أن يتم إضافة قوسين في النهاية ، كالتالي: {{ user.get_gender_display() }} 1 اقتباس
0 محمد أبو عواد نشر 4 سبتمبر 2021 أرسل تقرير نشر 4 سبتمبر 2021 لكل حقل يحتوي على مجموعة اختيارات ، سيكون للكائن دالة اسمها get_FOO_display () ، حيث FOO هو اسم الحقل. تقوم هذه الطريقة بإرجاع قيمة الحقل والتي يمكننا قراءتها, في ملف العرض user = User.objects.filter(to_be_listed=True) context['gender'] = User.get_gender_display() في التمبليت {{ user.get_gender_display }} 1 اقتباس
0 Ali Haidar Ahmad نشر 4 سبتمبر 2021 أرسل تقرير نشر 4 سبتمبر 2021 (معدل) مقتبس من التوثيق "لكل حقل يحتوي على مجموعة اختيارات، سيكون للكائن طريقة get_FOO_display () ، حيث FOO هو اسم الحقل. تقوم هذه الطريقة بإرجاع قيمة الحقل بحيث يمكننا قراءتها." . لذا يمكنك إجراء التعديل التالي: class User(models.Model): name = models.CharField(max_length=200) bio = models.CharField(max_length=20000, blank=True) GENDER_CHOICES = ( ('M', 'Male'), ('F', 'Female'), ) gender = models.CharField(max_length=20, choices=GENDER_CHOICES) def __str__(self): return self.get_gender_display() أو: #views ضمن ال user = user.objects.filter(to_be_listed=True) context['gender'] = user.get_gender_display() #template ضمن ال {{ user.get_gender_display }} تم التعديل في 4 سبتمبر 2021 بواسطة Ali Haidar Ahmad 1 اقتباس
السؤال
Amer Abdallah
لدي نموذج كالتالي:
وأستخدم النموذج السابق في ملف العرض view التالي:
لكن المشكلة هي عندما أحاول أن أقوم بطباعة الخاصية gender أحصل على M أو F بدلًا من Male أو Female، كيف أقوم بطباعة اسم الخاصية بالكامل؟
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.