Tôi đang cố gắng lấy mẫu đối tượng mô hình trong một trường hợp khác. Và tôi nâng lỗi này:Trình quản lý không thể truy cập được qua các phiên bản mẫu
Manager isn't accessible via topic instance
Dưới đây là mô hình của tôi:
class forum(models.Model):
# Some attributs
class topic(models.Model):
# Some attributs
class post(models.Model):
# Some attributs
def delete(self):
forum = self.topic.forum
super(post, self).delete()
forum.topic_count = topic.objects.filter(forum = forum).count()
Dưới đây là quan điểm của tôi:
def test(request, post_id):
post = topic.objects.get(id = int(topic_id))
post.delete()
và tôi nhận được:
post.delete()
forum.topic_count = topic.objects.filter(forum = forum).count()
Manager isn't accessible via topic instances
Tuy nhiên, 'chủ đề' dường như là lớp mô hình thực tế chứ không phải một phiên bản theo mã mà anh ta cung cấp. –
@Daniel: đúng. Tuy nhiên, lỗi 'Người quản lý không thể truy cập thông qua các trường hợp Foo' chỉ có thể thực hiện được khi bạn cố gắng truy cập vào một 'Trình quản lý' bằng cách sử dụng một cá thể. Xem mã nguồn: http://code.djangoproject.com/svn/django/trunk/django/db/models/manager.py –
Thật vậy, có lẽ một lý do khác (không phải là "thực hành tốt nhất") không sử dụng chữ thường cho tên lớp :) Nó sẽ xuất hiện anh ta có khả năng sử dụng 'topic' như là một biến cá thể cục bộ và thổi đi tham chiếu đến lớp. –