Sửa lỗi Django số nhiều


148

Làm cách nào để thay đổi một số tên mô hình từ "Danh mục" thành "Danh mục" trên trang quản trị trong phiên bản dev django mới? Trong phiên bản cũ (không có trang quản trị và mô hình quản trị), bạn chỉ có thể làm điều này; http://www.the-dig.com/blog/post/customize-plural-name-django-admin/

Tuy nhiên - bây giờ việc đặt verbose_name_plural bên trong lớp dựa trên modeladmin của tôi không làm gì cả. Bất cứ ai cũng khắc phục vấn đề tương tự?


Nó hoạt động với tôi trong Django 1.1.1 ... Bạn có chắc là bạn đặt nó trong lớp lồng nhau Meta không?
rescdsk

yah, tôi chỉ nghĩ rằng các phiên bản mới đã loại bỏ lớp Meta bên trong các mô hình. Rõ ràng là không - họ chỉ làm mọi thứ trở nên phức tạp hơn với các lớp Quản trị viên ...
Andriy Drozdyuk

Câu trả lời:


274

Chà, có vẻ như cách tiếp cận lớp Meta vẫn hoạt động. Vì vậy, việc đặt một lớp meta bên trong mô hình của bạn vẫn sẽ thực hiện thủ thuật:

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

Lưu ý rằng chúng tôi sử dụng chữ thường ở đây, vì django đủ thông minh để viết hoa khi chúng tôi cần.

Tôi thấy việc thiết lập tùy chọn này trong lớp mô hình kỳ lạ trái ngược với tệp admin.py. Đây là vị trí trong tài liệu dev nơi nó được mô tả:
http://docs.djangoproject.com/en/dev/ref/models/options/#verbose-name-plural


20
Ý tưởng thiết lập điều này trong lớp mô hình (chứ không phải admin.py) sẽ biến thành DRY - chỉ vì quản trị viên là thứ duy nhất sử dụng thông tin này về mô hình của bạn không có nghĩa là nó sẽ luôn luôn là. Hy vọng nếu bạn cần tên số nhiều của một mô hình ở đâu đó trong mã của riêng bạn, bạn sẽ sử dụng thuộc tính này thay vì phát minh lại bánh xe.
cibyr

11

cho rằng bạn cần thêm các lớp meta cho các mô hình

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

Phần thưởng cho quản trị viên mô hình của bạn trong apps.py

class CategoryConfig(AppConfig):
    name = "Category"
    verbose_name = "Categories"
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.