Форум сайта python.su
Здравствуйте!
Задача - сделать зачаточный личный кабинет пользователя.
Создание пользователя происходит пока только через админку. Используется переопределенная модель юзера (django 1.5).
Пользователь должен иметь возможность редактировать только одно поле - “о себе”.
Подскажите. пожалуйста, в общих чертах, путь реализации.
Спасибо!
Офлайн
1. Сделать Форму с реквизитом который нужно изменять.
2. Перед показом формы пользователю инициализировать текущим значением реквизита
2. При обработке полученных данных от пользователя на сервере - записывать его в поле реквизита текущего пользователя.
Офлайн
class UserSettingsForm(forms.ModelForm): class Meta: model = get_user_model() fields = ('about') class UserSettings(UpdateView): form_class = UserSettingsForm template_name = "user/settings.html" def get_object(self, queryset=None): return self.request.user def get_success_url(self): return reverse('user_detail', args=[self.request.user.username]) url(r'^settings/$', UserSettings.as_view(), name='user_settings')
Офлайн
nnmwareЕсли я правильно понял, во вью используется CBV. Но тогда невозможно использовать декоратор @login_required. Т.е. страница user/settings.html получается открытой. Можно как-нибудь избежать использования CBV?
Офлайн
Офлайн
FishHook
Декораторы в CBV
Офлайн
а как насчет готовых 3-th apps - попробуй использовать их - должно понравиться
Офлайн
А что это?
Офлайн
например
django-userena
Офлайн