我在用户使用其YouTube帐户验证其帐户后,一直在尝试保存凭据。我一直在关注此示例,将我新创建的凭据存储在我的数据库中供以后使用。 https://code.google.com/p/google-api-python-client/source/browse/samples/django_sample/。在其中我们应该为django创建一个凭证模型,如下所示。
from django.contrib.auth.models import User
from django.db import models
from oauth2client.django_orm import CredentialsField
...
class CredentialsModel(models.Model):
id = models.ForeignKey(User, primary_key=True)
credential = CredentialsField()
我使用South,所以我不得不创建自定义迁移,因为它不喜欢自定义" CredentialsField"在我的模型中。我从此回购https://github.com/ssutee/watna_location/blob/master/location/migrations/0010_auto__add_credentialsmodel.py#L19复制了用户的迁移,如下所示。
def forwards(self, orm):
# Adding model 'CredentialsModel'
db.create_table('location_credentialsmodel', (
('id', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'], primary_key=True)),
('credential', self.gf('oauth2client.django_orm.CredentialsField')(null=True)),
))
db.send_create_signal('location', ['CredentialsModel'])
现在每次运行我的应用程序时,它都会崩溃
storage = Storage(CredentialsModel, 'id', user, 'credential')
错误" init ()只需要2个参数(给定5个)"。我非常确定它应该采用5个参数,而不是从文档判断。有没有人知道我可能做错了什么?
答案 0 :(得分:0)
我发布这个解决方案后,解决方案就出现了。我需要从python的一般版本
更改我的import语句from oauth2client.file import Storage
到Django特定版本的
from oauth2client.django_orm import Storage