Amer Abdallah نشر 1 سبتمبر 2021 أرسل تقرير نشر 1 سبتمبر 2021 لدي نموذج Person له علاقة foreign key بـ Post، والذي يحتوي على عدد من الحقول، وأريد عرض حقل المؤلف Author (حقل من نوع CharField) من خلال list_display. في نموذج PersonAdmin الخاص بي ، أود عرض الكتاب. المؤلف باستخدام list_display: class PersonAdmin(admin.ModelAdmin): list_display = ['post.author',] لقد جربت جميع الطرق الواضحة للقيام بذلك ، ولكن لا شيء يبدو أنه يعمل ولا أعرف كيفية القيام بذلك. 2 اقتباس
1 شرف الدين حفني نشر 1 سبتمبر 2021 أرسل تقرير نشر 1 سبتمبر 2021 لتستطيع مناداة حقل من الكائنات التي بينها علاقة يمكنك إنشاء دوال في الكائنات حتى تساعد على إرجاع الحقل المطلوب , فمثلاً في حالتك تريد أن تحصل على إسم المؤلف, إذا يمكنك أولا إنشاء دالة عند الكتاب تساعدك على ذلك class PostAdmin(admin.ModelAdmin): list_display = ['title', 'get_author', ] def get_name(self, obj): return obj.author.name get_name.short_description = 'author_name' #Renames column head ومن ثم يمكنك في ملف الPerson أن تضع إسم هذه الدالة في الlist_display class PersonAdmin(admin.ModelAdmin): list_display = ['post.author_name',] 1 اقتباس
0 Ali Haidar Ahmad نشر 2 سبتمبر 2021 أرسل تقرير نشر 2 سبتمبر 2021 يمكنك القيام بذلك بالشكل التالي: # models.py ضمن الملف class Author(models.Model): name = models.CharField(max_length=255) class Book(models.Model): author = models.ForeignKey(Author) title = models.CharField(max_length=255) # هذه هي الطريقة التي تشير بها إلى اسم مفتاح خارجي في جانغو # admin.py ضمن الملف class BookAdmin(admin.ModelAdmin): model = Book list_display = ['title', 'get_name', ] def get_name(self, obj): return obj.author.name #يسمح بفرز ترتيب العمود get_name.admin_order_field = 'author' #إعادة تسمية رأس العمود get_name.short_description = 'Author Name' admin.site.register(Book, BookAdmin) 1 اقتباس
0 محمد أبو عواد نشر 2 سبتمبر 2021 أرسل تقرير نشر 2 سبتمبر 2021 الطريقة الصحيحة للقيام بذلك باستخدام Django 3.2 أو أعلى هي باستخدام display decorator كالتالي class BookAdmin(admin.ModelAdmin): model = Post list_display = ['title', 'get_author_name'] @admin.display(description='Author Name', ordering='author__name') def get_author_name(self, obj): return obj.author.name 1 اقتباس
السؤال
Amer Abdallah
لدي نموذج Person له علاقة foreign key بـ Post، والذي يحتوي على عدد من الحقول، وأريد عرض حقل المؤلف Author (حقل من نوع CharField) من خلال list_display.
في نموذج PersonAdmin الخاص بي ، أود عرض الكتاب. المؤلف باستخدام list_display:
لقد جربت جميع الطرق الواضحة للقيام بذلك ، ولكن لا شيء يبدو أنه يعمل ولا أعرف كيفية القيام بذلك.
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.