来自 django-mptt 的全局名称未定义

global name from django-mptt is not defined

所以它一定是一些基本的东西,但我想不通。

我正在按照教程尝试使用 django-mptt

创建于 models.py

    @with_author    
class Tree(MPTTModel):
    name = models.CharField(max_length=50, unique=True)
    parent = TreeForeignKey('self', null=True, blank=True, related_name='children', db_index=True)

    class MPTTMeta:
        order_insertion_by = ['name']

和 views.py

 def show_tree(request):
     return render_to_response("item/tree.html",
                           {'nodes':Tree.objects.all()},
                           context_instance=RequestContext(request))

但我不知道如何将树从模型导入视图

我尝试了不同的组合,例如

from myapp.models import Tree
from myapp.MPTTModel import Tree

等但它不起作用,并且没有导入 Tree 我收到错误

global name 'Tree' is not defined

回溯:

File "C:\Users\I812624\dev\mrp\lib\site-packages\django\core\handlers\base.py" in get_response
  132.                     response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\I812624\dev\mrp\src\item\views.py" in show_tree
  118.         {'nodes':Tree.objects.all()},context_instance=RequestContext(request))

Exception Type: NameError at /item/tree/
Exception Value: global name 'Tree' is not defined

我想通了

我遇到了一些问题:

必须包含在 view.py

from item.models import Tree
from django.template import RequestContext

另一个问题是@awwester 建议的命名拼写错误