Django memperbaiki Admin jamak

148

Bagaimana cara mengubah beberapa model nama dari "Kategori" menjadi "Kategori" di situs admin di versi dev django baru? Dalam versi lama (tanpa situs admin dan model admin) Anda bisa melakukan ini; http://www.the-dig.com/blog/post/customize-plural-name-django-admin/

Namun - sekarang pengaturan verbose_name_plural di dalam kelas berbasis modeladmin saya tidak melakukan apa-apa. Adakah yang memiliki masalah yang sama dengan encouter?

Andriy Drozdyuk
sumber
Ini bekerja untuk saya di Django 1.1.1 ... Apakah Anda yakin Anda memasukkannya ke dalam kelas bersarang Meta?
rescdsk
yah, saya hanya berpikir bahwa versi baru menyingkirkan kelas Meta batin di dalam model. Rupanya tidak - mereka hanya membuat hal-hal lebih rumit dengan kelas Admin ...
Andriy Drozdyuk

Jawaban:

274

Baiklah, sepertinya pendekatan kelas Meta masih berfungsi. Jadi menempatkan kelas meta di dalam model Anda masih akan melakukan trik:

class Category(models.Model):
    class Meta:
        verbose_name_plural = "categories"

Perhatikan bahwa kita menggunakan huruf kecil di sini, karena Django cukup pintar untuk memanfaatkannya saat kita membutuhkannya.

Saya menemukan pengaturan opsi ini di kelas-model yang aneh sebagai lawan dari file admin.py. Berikut adalah lokasi dalam dokumen dev di mana dijelaskan:
http://docs.djangoproject.com/en/dev/ref/models/options/#verbose-name-plural

Andriy Drozdyuk
sumber
20
Gagasan untuk mengatur ini di kelas model (bukan admin.py) bermuara pada KERING - hanya karena admin adalah satu-satunya yang out-of-the-box yang menggunakan informasi ini tentang model Anda tidak berarti itu akan selalu menjadi. Mudah-mudahan jika Anda membutuhkan nama jamak model di suatu tempat dalam kode Anda sendiri, Anda akan menggunakan properti ini alih-alih menciptakan kembali roda.
cibyr
11

untuk itu Anda perlu menambahkan kelas meta untuk model

class Category(models.Model):
    --- model field here ---
    class Meta: 
        verbose_name = "Category"
        verbose_name_plural = "Categories"

Bonus untuk admin model Anda di apps.py

class CategoryConfig(AppConfig):
    name = "Category"
    verbose_name = "Categories"
Saurabh Chandra Patel
sumber