Guest User

Untitled

a guest
Sep 12th, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.03 KB | None | 0 0
  1. Cannot create Django user due to UserProfile creation throwing IntegrityError
  2. class UserProfile(models.Model):
  3. user = models.OneToOneField(User)
  4.  
  5. age = models.DateField()
  6. city = models.CharField(max_length=30)
  7. state = models.CharField(max_length=20)
  8. country = models.CharField(max_length=30)
  9. primary_language = models.CharField(max_length=30)
  10. secondary_language = models.CharField(max_length=30, blank=True, null=True)
  11. tertiary_language = models.CharField(max_length=30, blank=True, null=True)
  12.  
  13. def create_user_profile(sender, instance, created, **kwargs):
  14. if created:
  15. UserProfile.objects.create(user=instance)
  16.  
  17. post_save.connect(create_user_profile, sender=User)
  18.  
  19. def create_user_and_profile(request):
  20. form = RegistrationForm(request.POST)
  21. if form.is_valid():
  22. # User is saved to DB here
  23. user = User.objects.create_user(
  24. username = form.cleaned_data['username'],
  25. password = form.cleaned_data['password1'],
  26. email = form.cleaned_data['email']
  27. )
  28. user.first_name = form.cleaned_data['first_name']
  29. user.last_name = form.cleaned_data['last_name']
  30. user.save()
  31. # TODO remaining user creation code goes here
  32. profile = user.get_profile()
  33.  
  34. profile.age = form.cleaned_data['age'],
  35. profile.city = form.cleaned_data['city'],
  36. profile.state = form.cleaned_data['state'],
  37. profile.country = form.cleaned_data['country'],
  38. profile.primary_language = form.cleaned_data['primary_language'],
  39. profile.secondary_language = form.cleaned_data['secondary_language'],
  40. profile.tertiary_language = form.cleaned_data['tertiary_language']
  41. profile.save()
  42. return user
  43. else:
  44. variables = RequestContext(request, {'form': form})
  45. return render_to_response('registration/register.html', variables)
  46.  
  47. profile.first_name = 'abc'
  48. profile.last_name = 'abc'
  49. profile.age = Date(2000, 1, 1)
  50. profile.save()
  51.  
  52. age = models.DateField()
  53.  
  54. age = models.DateField(null=True)
Add Comment
Please, Sign In to add comment