Найти - Пользователи
Полная версия: Создание личного кабинета
Начало » Django » Создание личного кабинета
1
dnstuff
Здравствуйте!
Задача - сделать зачаточный личный кабинет пользователя.
Создание пользователя происходит пока только через админку. Используется переопределенная модель юзера (django 1.5).
Пользователь должен иметь возможность редактировать только одно поле - “о себе”.
Подскажите. пожалуйста, в общих чертах, путь реализации.
Спасибо!
inoks
1. Сделать Форму с реквизитом который нужно изменять.
2. Перед показом формы пользователю инициализировать текущим значением реквизита
2. При обработке полученных данных от пользователя на сервере - записывать его в поле реквизита текущего пользователя.
nnmware
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')
первое в forms.py
второе во view.py
третье в urls.py
dnstuff
nnmware
Если я правильно понял, во вью используется CBV. Но тогда невозможно использовать декоратор @login_required. Т.е. страница user/settings.html получается открытой. Можно как-нибудь избежать использования CBV?
FishHook
Декораторы в CBV
nnmware
FishHook
Декораторы в CBV

Пасиб. Крайне полезная штука, искал такое.

А относительно вопроса dnstuff- не будет user/settings.html открыта. get_object даст ошибку, и в итоге Http404 получим при debug=False
romankrv
а как насчет готовых 3-th apps - попробуй использовать их - должно понравиться
dnstuff
А что это?
romankrv
например
django-userena
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB