在Python for Django上实现Youtube API v3时出现问题(错误:';unicode';对象没有属性';video';)
我正在尝试使用 这是我的上传操作 视频/视图.py在Python for Django上实现Youtube API v3时出现问题(错误:';unicode';对象没有属性';video';),python,django,youtube-data-api,Python,Django,Youtube Data Api,我正在尝试使用 这是我的上传操作 视频/视图.py def upload(request): """ Upload video :param request: """ context = RequestContext(request) if request.method == 'POST': # do the following form_upload = VideoForm(request.POST, requ
def upload(request):
"""
Upload video
:param request:
"""
context = RequestContext(request)
if request.method == 'POST':
# do the following
form_upload = VideoForm(request.POST, request.FILES)
if form_upload.is_valid():
uploaded_video = form_upload.save(commit=True)
uploaded_video.category = 23
uploaded_video.privacyStatus = 'public'
# send this file to youtube
initialize_upload(uploaded_video.file_on_server.path, uploaded_video)
messages.success(request, 'Video saved.')
else:
messages.error(request, 'Ooops.')
else:
form_upload = VideoForm(instance=request.user)
context_dict = {'form_upload': form_upload}
return render_to_response('videos/upload.html', context_dict, context)
这是Python的例子
但我收到以下错误消息:
AttributeError at /videos/upload
'unicode' object has no attribute 'videos'
Request Method: POST
Request URL: http://127.0.0.1:8000/videos/upload
Django Version: 1.7.2
Exception Type: AttributeError
Exception Value:
'unicode' object has no attribute 'videos'
Exception Location: /home/ymorin007/workspace/sites/humor15.com/src/videos/upload_video.py in initialize_upload, line 108
Python Executable: /home/ymorin007/.virtualenvs/humor15/bin/python2.7
Python Version: 2.7.6
Python Path:
['/home/ymorin007/workspace/sites/humor15.com/src',
'/home/ymorin007/Softwares/pycharm-4.0/helpers/pydev',
'/home/ymorin007/workspace/sites/humor15.com/src',
'/home/ymorin007/.virtualenvs/humor15/lib/python2.7',
'/home/ymorin007/.virtualenvs/humor15/lib/python2.7/plat-x86_64-linux-gnu',
'/home/ymorin007/.virtualenvs/humor15/lib/python2.7/lib-tk',
'/home/ymorin007/.virtualenvs/humor15/lib/python2.7/lib-old',
'/home/ymorin007/.virtualenvs/humor15/lib/python2.7/lib-dynload',
'/usr/lib/python2.7',
'/usr/lib/python2.7/plat-x86_64-linux-gnu',
'/usr/lib/python2.7/lib-tk',
'/home/ymorin007/.virtualenvs/humor15/local/lib/python2.7/site-packages']
Server time: Wed, 21 Jan 2015 15:33:22 -0400
Traceback Switch to copy-and-paste view
/home/ymorin007/.virtualenvs/humor15/local/lib/python2.7/site-packages/django/core/handlers/base.py in get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs) ...
▶ Local vars
/home/ymorin007/.virtualenvs/humor15/local/lib/python2.7/site-packages/django/contrib/auth/decorators.py in _wrapped_view
return view_func(request, *args, **kwargs) ...
▶ Local vars
/home/ymorin007/workspace/sites/humor15.com/src/videos/views.py in upload
initialize_upload(uploaded_video.file_on_server.path, uploaded_video) ...
▶ Local vars
/home/ymorin007/workspace/sites/humor15.com/src/videos/upload_video.py in initialize_upload
insert_request = youtube.videos().insert( ...
▶ Local vars
我找不到这个错误的任何解释。任何帮助都将不胜感激。谢谢
顺便说一句,这是我第一次使用Python和youtube数据API。回溯告诉您,您试图在unicode(字符串)对象上调用不受支持的方法。这似乎是views.py中该行的结果:
initialize_upload(uploaded_video.file_on_server.path, uploaded_video)
下面是示例所显示的内容:
youtube = get_authenticated_service(args)
try:
initialize_upload(youtube, args)
您似乎想将服务对象的实例传递给此函数,而不是上传视频的路径。请原谅我的愚蠢,但您能给我一个提示,说明我应该传递什么样的服务对象吗。谢谢。在这个例子中,它是youtube=get\u authenticated\u服务(args)。在本例中,args是从调用脚本的命令行填充的。您需要仔细查看if uuuu name uuuuu='\uuuuuuu=main uuuuu'下的代码,以查看需要在此处传递什么类型的参数。我不确定initialize_upload(youtube,options)的第一个参数:我已经添加了文件的路径,但可能需要与选项一起使用。但在这种情况下,youtube的论点是什么?此外,我还查看了名称下的arg,并提供了所有这些arg。它来自示例中它上面的一行:youtube=get_authenticated_service(args),但对于youtube arg,我需要从my view.py发送什么参数。到目前为止,我有以下内容:初始化上传(上传到服务器路径上的上传视频文件,上传视频)
youtube = get_authenticated_service(args)
try:
initialize_upload(youtube, args)