我想用mongoengine和django实现登录功能。mongoengine和django验证,登录
我已经包含了 'mongoengine.django.mongo_auth' 在INSTALLED_APPS
以下是来自现场mongoengine我的settings.py。
MONGOENGINE_USER_DOCUMENT = 'mongoengine.django.auth.User'
AUTH_USER_MODEL = 'mongo_auth.MongoUser'
SESSION_ENGINE = 'mongoengine.django.sessions'
AUTHENTICATION_BACKENDS = (
'mongoengine.django.auth.MongoEngineBackend',
)
这是models.py
class UserInfo(User,DynamicDocument):
address = EmbeddedDocumentField(Address)
dob = DateTimeField(required = True)
sex = StringField(max_length = 1, choices = SEX)
primary_number = LongField(required = True)
而下面是views.py
def LoginOrCreateUser(request):
formAuth = AuthenticationForm(data=(request.POST or None))
if(request.method=='POST'):
if(formAuth.is_valid()):
if(formAuth.clean_email()):
if(formAuth.clean_password()):
formAuth.save(True)
user=authenticate(username=formAuth.cleaned_data['username'],password = formAuth.cleaned_data['password1'])
login(request,user)
return HttpResponse('New User Success')
此代码给我错误< obj_id “用户” >不JSON可序列化。 该错误是登录引发的,所以我想在这里登录API由django提供,但是我们提供给它的用户是从authenticate获得的值,它是mongoengine提供的api。
我看着django和mongoengine的auth.py。所以,我们在mongoengine中没有登录API。并且django的认证返回用户实例,而mongoengine的认证返回一个字符串,即用户名。
在这里的任何建议或我在这里执行的错误。
抱歉@BugFixer,我实现了这个jsonResponse方法。将编辑我的答案包括它。问候,AT –
我不能让它运行,可能你可以给我一个关于mongoengine/django用户认证的问题,如果你能给我一只手,我会感激! http://stackoverflow.com/questions/22861077/django-auth-with-mongoengine-db – BugFixer