Django mptt - rebuild()

Bạn đang sử dụng Django-mptt để tạo danh mục cho dự án của mình. Rồi một ngày nào đó, bạn thấy cây danh mục của mình nó có gì đó sai sai… :rofl:
Có lẽ đó là lúc bạn cần đến tính năng rebuild() của mptt.
Mọi hướng dẫn đều nói:

#in python shell
ModelName.objects.rebuild()

Thực sự chẳng hiểu gì luôn - đối với người mới làm quen với django và chưa và có lẽ chưa sử dụng python shell bao giờ :joy:

Để thuận tiện, hãy tiền tên ứng dụng thực tế của bạn vào trường bên dưới

Tên ứng dụng của bạn (vd: shop, blog, news…)

Tên lớp mô hình danh mục MPTTModel của bạn

OK! Đây là hướng dẫn chi tiết:

  1. Kiểm tra lại models.py để xem ModelName
# =app=/models.py
class =Category=(MPTTModel):
...

ModelName ở đây là =Category==Category=.objects.rebuild()
2. Trong thư mục dự án, mở Terminal và chạy:

python manage.py shell

Bạn sẽ thấy rằng shell đang hoạt động bởi ba >>> có thể nhìn thấy được. Trong shell nhập mô hình mà bạn muốn xây dựng lại cây. Sau đó chạy lệnh xây dựng.

>>> from =app=.models import =Category=
>>> =Category=.objects.rebuild()

Oh! vậy là xong rồi đấy, Làm mới cây danh mục của bạn xem nhé.