Tôi mới dùng Django và MPTT và gặp khó khăn trong việc tìm ra cách lấy tất cả các nút lá và gửi chúng trực tiếp đến lớp Biểu mẫu. Ví dụ, tôi đã tạo MPTT Thể loại Model, và có hệ thống phân cấp như thế này:Django và MPTT - chỉ nhận các nút lá
- mục1
- mục2
- Category3
- Category4
- Category5
- Category6
Vì vậy, tôi muốn duy nhất để loại lá (cat2,3,5,6) .My Mẫu lớp trông giống như sau:
class UploadForm(forms.Form):
description = forms.CharField(max_length=50)
category = mpttform.TreeNodeMultipleChoiceField(queryset=Category.objects.all())
file = forms.FileField()
Và với queryset = Category.objects.all() Tôi nhận được chính xác những điều tương tự ở trên - tất cả các loại và con của nó. Có cách nào tôi có thể nhận được chỉ có các nút lá (trẻ em), nhưng các nút lá từ tất cả các loại, không phải từ thể loại cụ thể? Cảm ơn.
Nhờ Giải pháp là Category.objects.filter (lft = F ('rght') - 1) – Zed
Zed, Zou nên click vào chấp nhận nút cho câu trả lời này! – Maccesch
Tôi nghĩ rằng điều này đã làm việc cho tôi w/Django 1.4.5 & Django MPTT 0.5.5, nhưng nhận ra nó vẫn còn trở về các nút gốc. Có vẻ như Category.objects.filter (level__gt = 0) là một cách tốt hơn, phải không? – natebeaty