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.