从python 3.5迁移到3.6,我的单元测试显示django-import-export和tablib存在问题:
TypeError:cell()缺少1个必需的位置参数:'column'
File "<path>/lib/python3.6/site-packages/tablib/formats/_xlsx.py", line 122, in dset_sheet
cell = ws.cell('%s%s' % (col_idx, row_number))
TypeError: cell() missing 1 required positional argument: 'column'
Run Code Online (Sandbox Code Playgroud)
tablib中的行:
cell = ws.cell('%s%s' % (col_idx, row_number))
Run Code Online (Sandbox Code Playgroud)
事实上,该专栏没有任何论据
我的观点代码:
my_resource = MyModelResource(queryset=my_queryset)
dataset = my_resource.export()
response = HttpResponse(dataset.xlsx, content_type='application/vnd.ms-excel')
Run Code Online (Sandbox Code Playgroud)
这在python3.5中工作正常但在3.6下失败
requirements.txt:
...
tablib==0.12.1
django-import-export==0.7.0
Django==1.11.7
...
Run Code Online (Sandbox Code Playgroud) C#Visual Studio 2010 Express:
当我的应用程序启动时,甚至在显示我的GUI之前,在对话框中都会出现以下错误:
致命问题:值不能为null。
参数名称:来源
这似乎与应用程序中的某些用户设置有关。我从StringCollection中的String更改了设置类型,但是我不确定这是根本原因。名称“ source”也不会响起。
问题是我无法中断应用程序来调试此错误。当我单击“确定”时,该应用程序将启动,但是由于某种原因这些设置都为空。
感谢您的帮助,
戴维
Django 1.8.16 django-allauth 0.27.0使用postgres作为数据库。
我的应用程序不使用用户名,仅使用电子邮件地址作为用户ID。所以我使用以下设置:
ACCOUNT_AUTHENTICATION_METHOD = 'email'
ACCOUNT_USERNAME_REQUIRED = False
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_UNIQUE_EMAIL = True
ACCOUNT_EMAIL_VERIFICATION = "mandatory"
ACCOUNT_USER_MODEL_USERNAME_FIELD = None
ACCOUNT_USER_MODEL_EMAIL_FIELD = 'email'
Run Code Online (Sandbox Code Playgroud)
现在,当新用户注册时,他将使用他的电子邮件地址。但是在提交注册表时,出现了以下错误:
IntegrityError at /accounts/signup/
duplicate key value violates unique constraint "auth_user_username_key"
DETAIL: Key (username)=() already exists.
Request Method: POST
Request URL: http://swd.localhost:8000/accounts/signup/
Django Version: 1.8.16
Exception Type: IntegrityError
Exception Value:
duplicate key value violates unique constraint "auth_user_username_key"
DETAIL: Key (username)=() already exists.
Run Code Online (Sandbox Code Playgroud)
这恰恰说明了问题所在:auth_user表的“用户名”字段中已经存在空用户名,并且似乎不允许这样做?但是问题在于,使用上述设置,用户名字段始终为空。那么我们如何解决这个问题?
我没有适应用户模型。