Пример #1
0
def register(request):
  fields = Field.objects.filter(required=True)
  if request.method == 'POST':
    userForm = forms.RegistrationForm(request.POST, prefix='user')
    profileForm = ProfileForm(request.POST, fields=fields, prefix='profile')
  else:
    userForm = forms.RegistrationForm(prefix='user')
    profileForm = ProfileForm(fields=fields, prefix='profile')
  if userForm.is_valid() and profileForm.is_valid():
    oldUser = None
    try:
      oldUser = User.objects.get(username__exact=userForm.cleaned_data['username'])
    except ObjectDoesNotExist, e:
      pass
    if not oldUser:
      user = User.objects.create_user(userForm.cleaned_data['username'],
          userForm.cleaned_data['email'], userForm.cleaned_data['password'])
      user.first_name = userForm.cleaned_data['firstName']
      user.last_name = userForm.cleaned_data['lastName']
      user.save()
      member = user.member
      member.birthday = userForm.cleaned_data['birthday']
      member.profession = userForm.cleaned_data['profession']
      member.save()
      user = authenticate(username=userForm.cleaned_data['username'], password=userForm.cleaned_data['password'])
      login(request, user)
      messages.info(request, "Welcome!")
      for field in fields:
        value = FieldValue.objects.create(field=field,
            value=profileForm.fieldValue(field), member=member)
      return HttpResponseRedirect(reverse('home'))
Пример #2
0
def createUser(request):
    fields = Field.objects.filter(required=True)
    if request.method == "POST":
        userForm = RegistrationForm(request.POST, prefix="user")
        profileForm = ProfileForm(request.POST, fields=fields, prefix="profile")
    else:
        userForm = RegistrationForm(prefix="user")
        profileForm = ProfileForm(fields=fields, prefix="profile")
    if userForm.is_valid() and profileForm.is_valid():
        randomPassword = "".join(
            [random.choice(string.letters + string.punctuation + string.digits) for i in range(15)]
        )
        if userForm.cleaned_data["username"] == "":
            userForm.cleaned_data["username"] = userForm.cleaned_data["email"].split("@")[0]
        oldUser = None
        try:
            oldUser = User.objects.get(username__exact=userForm.cleaned_data["username"])
        except User.DoesNotExist, e:
            pass
        if oldUser:
            messages.info(request, "The username '%s' already exists." % (userForm.cleaned_data["username"]))
        else:
            user = User.objects.create_user(
                userForm.cleaned_data["username"], userForm.cleaned_data["email"], randomPassword
            )
            user.first_name = userForm.cleaned_data["firstName"]
            user.last_name = userForm.cleaned_data["lastName"]
            user.save()
            member = user.member
            member.tagline = userForm.cleaned_data["tagline"]
            member.save()
            messages.info(request, "User '%s' created!" % userForm.cleaned_data["username"])
            notification.send([user], "account_created", {"user": user, "creator": request.user})
            for field in fields:
                value = FieldValue.objects.create(field=field, value=profileForm.fieldValue(field), member=member)