相关疑难解决方法(0)

使用Django 1.5和IPython获取NameError

我正在运行Django 1.5.1,Python 2.7.2和IPython 0.13.2.如果我从我的Django项目目录中执行"python ./manage.py shell",我会收到以下错误:

from django import forms
class CommentForm(forms.Form):
    name = forms.CharField()

NameError: name 'forms' is not defined.
Run Code Online (Sandbox Code Playgroud)

我知道表格被定义为我在"dir(表格)"时可以看到它.我注意到这个错误只发生在我在REPL中运行iPython时.如果我启动REPL并且只使用普通的旧Python解释器,则不会发生错误.

还有其他人遇到过这个问题吗?如果是这样,你知道它为什么会发生以及是否有解决方法吗?

我应该补充一点,我在过去在REPL中创建类时遇到了问题,直到我在类中创建了一个元类并定义了一个"app_label"变量.这在这种情况下并没有什么不同.

谢谢.

python django ipython django-forms

5
推荐指数
1
解决办法
467
查看次数

在lambda中使用导入的函数 - Python

我正在尝试根据不同的参数创建一个timedelta字典.例如.

from django.utils import timezone
a = {'Minutes':(lambda dt,delta: dt + timezone.timedelta(minutes=delta)),
     'Hours': (lambda dt,delta: dt + timezone.timedelta(hours=delta)}
Run Code Online (Sandbox Code Playgroud)

现在使用上面的字典时:

new_time = a['Minutes'](timezone.now(),10)
Run Code Online (Sandbox Code Playgroud)

它给出以下错误:

/usr/local/lib/python2.7/dist-packages/django/core/management/commands/shell.pyc in <lambda>(dt, delta)
----> 1 a = {'Minutes':(lambda dt,delta: dt + timezone.timedelta(minutes=delta))}
NameError: global name 'timezone' is not defined
Run Code Online (Sandbox Code Playgroud)

请解释为什么我不能在lambda中使用导入的函数.

python django lambda

2
推荐指数
1
解决办法
744
查看次数

无法通过管道命令访问 django shell 中的导入函数?

这是一个python脚本tshi3.py

    import csv
    def li2ho2():
        print(csv)
    li2ho2()
Run Code Online (Sandbox Code Playgroud)

我复制了这段代码并将其粘贴到python manage.py shell. 有用。

但我跑了python manage.py shell < tshi3.py。得到了NameError: name 'csv' is not defined

为什么?

环境:

    Linux Mint 18.1
    Python 3.4.1 (default, Sep  3 2014, 08:45:22) 
    Django==1.11.4
Run Code Online (Sandbox Code Playgroud)

一个类似的问题

python django shell

2
推荐指数
2
解决办法
703
查看次数

标签 统计

django ×3

python ×3

django-forms ×1

ipython ×1

lambda ×1

shell ×1