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 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
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 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
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 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
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 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
السؤال
Amer Abdallah
لدي نموذج Person له علاقة foreign key بـ Post، والذي يحتوي على عدد من الحقول، وأريد عرض حقل المؤلف Author (حقل من نوع CharField) من خلال list_display.
في نموذج PersonAdmin الخاص بي ، أود عرض الكتاب. المؤلف باستخدام list_display:
لقد جربت جميع الطرق الواضحة للقيام بذلك ، ولكن لا شيء يبدو أنه يعمل ولا أعرف كيفية القيام بذلك.
رابط هذا التعليق
شارك على الشبكات الإجتماعية
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.