Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 17, 2013 13:36:38

dnstuff
Зарегистрирован: 2012-11-05
Сообщения: 113
Репутация: +  1  -
Профиль   Отправить e-mail  

Создание личного кабинета

Здравствуйте!
Задача - сделать зачаточный личный кабинет пользователя.
Создание пользователя происходит пока только через админку. Используется переопределенная модель юзера (django 1.5).
Пользователь должен иметь возможность редактировать только одно поле - “о себе”.
Подскажите. пожалуйста, в общих чертах, путь реализации.
Спасибо!

Офлайн

#2 Фев. 17, 2013 16:32:45

inoks
От: Russia
Зарегистрирован: 2012-12-11
Сообщения: 343
Репутация: +  35  -
Профиль   Адрес электронной почты  

Создание личного кабинета

1. Сделать Форму с реквизитом который нужно изменять.
2. Перед показом формы пользователю инициализировать текущим значением реквизита
2. При обработке полученных данных от пользователя на сервере - записывать его в поле реквизита текущего пользователя.

Офлайн

#3 Фев. 17, 2013 16:50:43

nnmware
Зарегистрирован: 2012-07-21
Сообщения: 133
Репутация: +  13  -
Профиль   Отправить e-mail  

Создание личного кабинета

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

Офлайн

#4 Фев. 25, 2013 13:18:58

dnstuff
Зарегистрирован: 2012-11-05
Сообщения: 113
Репутация: +  1  -
Профиль   Отправить e-mail  

Создание личного кабинета

nnmware
Если я правильно понял, во вью используется CBV. Но тогда невозможно использовать декоратор @login_required. Т.е. страница user/settings.html получается открытой. Можно как-нибудь избежать использования CBV?

Офлайн

#5 Фев. 25, 2013 13:21:35

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Создание личного кабинета

Офлайн

#6 Фев. 26, 2013 00:54:07

nnmware
Зарегистрирован: 2012-07-21
Сообщения: 133
Репутация: +  13  -
Профиль   Отправить e-mail  

Создание личного кабинета

FishHook
Декораторы в CBV

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

А относительно вопроса dnstuff- не будет user/settings.html открыта. get_object даст ошибку, и в итоге Http404 получим при debug=False

Офлайн

#7 Март 3, 2013 17:39:46

romankrv
От:
Зарегистрирован: 2008-05-23
Сообщения: 513
Репутация: +  0  -
Профиль   Отправить e-mail  

Создание личного кабинета

а как насчет готовых 3-th apps - попробуй использовать их - должно понравиться

Офлайн

#8 Март 3, 2013 18:02:45

dnstuff
Зарегистрирован: 2012-11-05
Сообщения: 113
Репутация: +  1  -
Профиль   Отправить e-mail  

Создание личного кабинета

А что это?

Офлайн

#9 Март 3, 2013 18:50:24

romankrv
От:
Зарегистрирован: 2008-05-23
Сообщения: 513
Репутация: +  0  -
Профиль   Отправить e-mail  

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version