Guest User

Untitled

a guest
Sep 6th, 2018
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.43 KB | None | 0 0
  1. Django problem with creating user then logging them in
  2. def signup(request):
  3. if request.method == 'POST': # If the form has been submitted...
  4. p = request.POST
  5. if not request.user.is_authenticated():
  6. form = UserForm(request.POST) # A form bound to the POST data
  7. if form.is_valid(): # All validation rules pass
  8. # Process the data in form.cleaned_data
  9. # ...
  10. form.save()
  11. user=authenticate(username=p['username'],password=p['password'])
  12. login(request,user)
  13. return HttpResponseRedirect('/') # Redirect after POST
  14.  
  15. Traceback:
  16. File "/Library/Python/2.6/site-packages/django/core/handlers/base.py" in get_response
  17. 100. response = callback(request, *callback_args, **callback_kwargs)
  18. File "REDACTED/views.py" in signup
  19. 19. login(request,user)
  20. File "/Library/Python/2.6/site-packages/django/contrib/auth/__init__.py" in login
  21. 71. user.save()
  22. File "/Library/Python/2.6/site-packages/django/contrib/auth/models.py" in save
  23. 430. raise NotImplementedError
  24.  
  25. Exception Type: NotImplementedError at /signup/
  26. Exception Value:
  27.  
  28. user = UserForm.save()
  29. login(request, user)
  30.  
  31. user.passord = password
  32.  
  33. username = form.cleaned_data['username']
  34. password = form.cleaned_data['password']
  35.  
  36. user = User.objects.create(username=username)
  37. if password:
  38. user.set_password(password)
  39. else:
  40. user.set_unusable_password()
  41. user.save()
  42.  
  43. username = form.cleaned_data['username']
  44. password = form.cleaned_data['password']
  45. hashed_password = hashlib.md5(password).hexdigest()
  46.  
  47. user = authenticate(username=username, password=hashed_password)
  48. if user:
  49. login(request, user)
  50. return HttpResponseRedirect('/')
  51.  
  52. # forms.py
  53. from django import forms
  54.  
  55.  
  56. class LoginForm(forms.Form):
  57. username = forms.CharField(max_length=20)
  58. password = forms.CharField(widget=forms.PasswordInput)
  59.  
  60.  
  61. # views.py
  62. import hashlib
  63.  
  64. username = form.cleaned_data['username']
  65. password = form.cleaned_data['password']
  66. hashed_password = hashlib.md5(password).hexdigest()
  67.  
  68. # assuming username is unique
  69. User.objects.get_or_create(username=username, defaults={'password': hashed_password, 'is_active': True})
  70.  
  71. # If password doesn't work, try hashed_password next
  72. user = authenticate(username=username, password=password)
  73. if user:
  74. login(request, user)
  75. return HttpResponseRedirect('/')
Add Comment
Please, Sign In to add comment