Работаю с django не более двух недель, а уже приходится учавствовать в проектах. Так вот, решил поделиться проблеммой, так как у самого что-то пока не выходит.
Глобально задача звучит просто - дать пользователю возможность редактирвоать свой профиль.
При регистрации пользователь водит лишь логин, почту и пароль, но позже при переходе в профиль у него есть возможность внести в профиль дополнительную информацию.
#models.py class Profile(models.Model): user = models.OneToOneField(User) ava = models.ImageField(upload_to='user_image',) city = models.CharField(max_length=32, blank=True, null=True) about = models.TextField(blank=True, null=True) rating = models.IntegerField(default=0) class Meta: verbose_name = 'Профиль'
#forms.py class UserForm(forms.ModelForm): class Meta: model = User fields = ['first_name', 'last_name', 'username', 'email', 'password'] class ProfileForm(UserForm): class Meta(object): model = Profile fields = ('ava', 'city', 'about') widgets = { 'about': forms.Textarea(attrs={'cols': 80, 'rows': 20}), }
#view.py def EditProfile(request): if not request.user.is_authenticated(): return HttpResponseRedirect('/') if request.method == 'POST': user = request.user usrform = UserForm(request.POST, instance=User.objects.get(username=request.user)) proform = ProfileForm(request.POST, instance=user) if usrform.is_valid() and proform.is_valid(): usrform.save() proform.save() else: usrform = UserForm() proform = ProfileForm() profile = request.user.get_profile context = { 'profile' : profile, 'usrform' : usrform, 'proform' : proform } return render_to_response('profile/profile_edit.html', context, context_instance=RequestContext(request))
Делаю согласно документации, что-то додумываю, что-то подсматриваю, просидел целый день а понять так и не смог. Подскажите пожалуйста, в какую сторону мне копать или где можно посмотреть примеры.
Спасибо.