这两个通用视图之间的区别

时间:2017-06-21 18:34:13

标签: python django

  1. 来自django.views.generic import CreateView
  2. 2.from django.views.generic.edit import CreateView

    他们之间的区别是什么?

1 个答案:

答案 0 :(得分:1)

您可以使用inspect模块从导入模块的位置获取文件。

>>> import inspect
>>> inspect.getfile(django.views.generic.edit.CreateView)
'/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/django/views/generic/edit.py'

>>> inspect.getfile(django.views.generic.CreateView)
'/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/django/views/generic/edit.py'

实际上,它们是一样的。第二次导入将从__init__.py导入该类,然后从CreateView继续导入edit.py

如果你查看__init__.py的内容,它会在那里指定一个import语句:

from django.views.generic.edit import (
    CreateView, DeleteView, FormView, UpdateView,
)

您可以看到通过__init__导入模块将导入CreateView