【问题标题】:How import a function from another view with Django?如何使用 Django 从另一个视图导入函数?
【发布时间】:2018-05-20 11:03:00
【问题描述】:

我有这个文件夹层次结构:

|---- saga
    |---- core
         |---- views.py
    |---- study_time
         |---- views.py

在我的study_time/views.py 上,我有这个功能:

def study_time(request):
    def tasks_subjects(week_day, key):
        #Code here
        return __tasks

    def day_studies(week_day):
        __tasks_subjects = tasks_subjects(week_day, 0)
        #Code here
        return __studies

    return render(request, 'study_time.html', context)

在我的core/views.py 上,我需要 day_studies() 函数,所以我是这样导入的:

from saga.study_time.views import day_studies
    def home(request):
        day_progress = day_studies(datetime.date.today().isoweekday())

但我得到了错误:

ImportError: 无法导入名称“day_studies”

如何进行此导入?我不想回复所有代码。

【问题讨论】:

    标签: python django django-views python-import django-import-export


    【解决方案1】:

    您已经定义了一个嵌套函数。这在包含函数之外根本不可见;事实上,让它从外部不可见几乎是在 Python 中定义嵌套函数的唯一充分理由。不要那样做;将其移到study_time 函数之外。

    (另外,不要使用这样的双下划线前缀。它们在类之外没有任何意义;即使在那里你也应该很少使用它们。)

    【讨论】:

    • 我这样做了,但它也不起作用,所以我在这里问。我又做了一次,发现问题出在身份上,我的错。关于双下划线,我没有这样使用,只是一时,当我安排变量时,现在一切正常。感谢您的帮助!
    【解决方案2】:

    内部函数不可访问,因为它只是该函数的本地代码。 view.py 中的所有内容都不是通用的。所以要区别对待。

    仔细阅读以更好地理解! https://realpython.com/blog/python/inner-functions-what-are-they-good-for/

    编码愉快!!

    【讨论】:

      猜你喜欢
      • 2019-05-23
      • 2014-12-06
      • 1970-01-01
      • 1970-01-01
      • 2022-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多