Hey all,
I've been trying to figure out how to create a directory in my media
directory for each user upon user registration. I have found a lot of
resources on how to upload files to a directory but just about none on
simply how to create the directory. I would like to be able to have my
webapp create xml files for each user and then place them in the user's own
directory. The second part I am fine with. Does anyone have any
suggestions on how to go about adding a directory attribute to a
UserProfile model? I can't seem to get anything to work.
Here's some code. Note that it does not have any directory information
applied to the code (other than that little line in models.py) because I
really have no idea how to go about this.
models.py
class UserProfile(models.Model):
user = models.OneToOneField(User)
directory = # something here to have an established user directory
views.py
def register(request):
# A boolean value for telling the template whether registration was
successful.
# Initially set to False. Code changes to True when registration
succeeds.
registered = False
if request.method == 'POST':
user_form = UserForm(data=request.POST)
profile_form = UserProfileForm(data=request.POST)
if user_form.is_valid() and profile_form.is_valid():
user = user_form.save()
user.set_password(user.password)
user.save()
profile = profile_form.save(commit=False)
profile.user = user
profile.save()
registered = True
username = request.POST['username']
password = request.POST['password']
user = authenticate(request, username=username, password=
password)
if user is not None:
login(request, user)
return HttpResponseRedirect(reverse('elsa:index'))
else:
return HttpResponse("Error in login after registration.")
else:
# Invalid form or forms - mistakes made
print(user_form.errors, profile_form.errors)
else:
# Not an HTTP POST, so we render our form using two ModelForm
instances.
# These forms will be blank and ready for user input.
user_form = UserForm()
profile_form = UserProfileForm()
# Render the template depending on the context.
return render(request, 'elsa/register.html', {'user_form': user_form,
'profile_form':
profile_form,
'registered': registered})
forms.py
class UserForm(forms.ModelForm):
password = forms.CharField(widget=forms.PasswordInput())
#data_relation = forms.(max_length=8, default='provider',
help_text='Choose provider or reviewer')
class Meta:
model = User
fields = ( 'username', 'email', 'password') #, 'data_relation')
class UserProfileForm(forms.ModelForm):
class Meta:
model = UserProfile
exclude = ('directory', ) # see note on models.py
--
You received this message because you are subscribed to the Google Groups
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-users/5ae06e7f-6c93-4e26-8138-4515788f3a6d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.