Django Düzeltme Yönetici çoğul


150

Yeni dev django sürümünde bazı model adlarını yönetici kategorisindeki "Kategoriler" den "Kategoriler" olarak nasıl değiştirebilirim? Eski sürümde (yönetici siteleri ve yönetici modelleri olmadan) bunu yapabilirsiniz; http://www.the-dig.com/blog/post/customize-plural-name-django-admin/

Ancak - şimdi modeladmin tabanlı sınıfımda verbose_name_plural ayarı yapmak hiçbir şey yapmaz. Aynı sorunu kodlayan var mı?


Django 1.1.1'de benim için çalışıyor ... Meta iç içe sınıfın içine koyduğunuzdan emin misiniz?
— rescdsk

yah, yeni sürümlerin modellerin içindeki iç Meta sınıfından kurtulduğunu düşündüm. Görünüşe göre hayır - sadece Yönetici sınıflarıyla işleri daha karmaşık hale
— getirdiler

Yanıtlar:


274

Eh, Meta sınıfı yaklaşımı hala çalışıyor gibi görünüyor. Dolayısıyla, modelinize bir meta sınıfı yerleştirmek yine de işe yarayacaktır:

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

Burada küçük harf kullandığımızı unutmayın, çünkü django ihtiyacımız olduğunda büyük harfle yazacak kadar akıllıdır.

Bu seçeneği ayarını admin.py dosyasının aksine model sınıfı garip buluyorum. Dev dokümanlarda açıklandığı yer:
http://docs.djangoproject.com/en/dev/ref/models/options/#verbose-name-plural


20
(Ziyade admin.py daha) modeli sınıfında bu ayarı fikri aşağı kaynar DRY - yönetici tek şey sırf dışı-box modeliniz hakkında bu bilgileri kullanır anlamına gelmez hep seveceğim olmak. Umarım kendi kodunuzda bir modelin çoğul ismine ihtiyacınız varsa, tekerleği yeniden icat etmek yerine bu özelliği kullanırsınız.
— cibyr

12

bunun için modeller için meta sınıflar eklemeniz gerekir

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

Model yöneticiniz için apps.py bonusu

class CategoryConfig(AppConfig):
    name = "Category"
    verbose_name = "Categories"
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.