Django 迁移错误名称 'bPath' 未定义
Django migrate error name 'bPath' is not defined
我运行正在使用 Django 1.7.4。
# base.py
PRIVATE_FOLDER_ROOT = str(PROJECT_DIR.child('web_private'))
# tested: PRIVATE_FOLDER_ROOT = PROJECT_DIR.child('web_private')
# tested: PRIVATE_FOLDER_ROOT = '/var/www/project/project/web_private'
# models.py
from django.conf import settings
@python_2_unicode_compatible
class MessageFile(models.Model):
"""
"""
fs_private_folder = FileSystemStorage(location=settings.PRIVATE_FOLDER_ROOT)
message = models.ForeignKey(Message)
file = models.FileField('file', storage=fs_private_folder, upload_to=get_upload_path_message_file)
当我运行
./manage.py migrate <my_app> --settings=myapp.settings.local
我收到以下错误
NameError: 名称 'bPath' 未定义
检查 0001_initial.py 我发现没有导入或定义 bPath。
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('file', models.FileField(upload_to=apps.admin_messages.models.get_upload_path_message_file, storage=django.core.files.storage.FileSystemStorage(location=bPath('/var/www/project/project/web_private')), verbose_name=b'file')),
('message', models.ForeignKey(to='admin_messages.Message')),
],
这个 SO question 链接到我的,但建议的解决方案不起作用。
谢谢,
D
看起来 makemigrations 会自动在字符串文字前面添加一个 "b" 以将它们标记为 Python 中的字节字符串 3.
如果您将转换从 str 更改为 unicode 可能会有所帮助,即:
PRIVATE_FOLDER_ROOT = unicode(PROJECT_DIR.child('web_private'))
我运行正在使用 Django 1.7.4。
# base.py
PRIVATE_FOLDER_ROOT = str(PROJECT_DIR.child('web_private'))
# tested: PRIVATE_FOLDER_ROOT = PROJECT_DIR.child('web_private')
# tested: PRIVATE_FOLDER_ROOT = '/var/www/project/project/web_private'
# models.py
from django.conf import settings
@python_2_unicode_compatible
class MessageFile(models.Model):
"""
"""
fs_private_folder = FileSystemStorage(location=settings.PRIVATE_FOLDER_ROOT)
message = models.ForeignKey(Message)
file = models.FileField('file', storage=fs_private_folder, upload_to=get_upload_path_message_file)
当我运行
./manage.py migrate <my_app> --settings=myapp.settings.local
我收到以下错误
NameError: 名称 'bPath' 未定义
检查 0001_initial.py 我发现没有导入或定义 bPath。
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('file', models.FileField(upload_to=apps.admin_messages.models.get_upload_path_message_file, storage=django.core.files.storage.FileSystemStorage(location=bPath('/var/www/project/project/web_private')), verbose_name=b'file')),
('message', models.ForeignKey(to='admin_messages.Message')),
],
这个 SO question 链接到我的,但建议的解决方案不起作用。
谢谢,
D
看起来 makemigrations 会自动在字符串文字前面添加一个 "b" 以将它们标记为 Python 中的字节字符串 3.
如果您将转换从 str 更改为 unicode 可能会有所帮助,即:
PRIVATE_FOLDER_ROOT = unicode(PROJECT_DIR.child('web_private'))