Установите и используйте флаги для модели профиля пользователя в Django - PullRequest
0 голосов
/ 01 декабря 2009

У меня есть простое веб-приложение в Django для приложения для iPhone. Я хочу предложить пользователю ознакомиться с нашим продуктом, но только один раз. Тогда я не хочу показывать это приглашение снова.

Итак, наилучшим ли способом реализации этого является добавление новой записи в модель профиля пользователя с логическим полем: «проверено» - и затем установить этот флаг, когда пользователь завершит действие?

Затем я проверил бы эту запись в моем шаблоне и отобразил бы или нет приглашение.

Я еще не работал с моделями баз данных, не расширял пользовательские модели и не сохранял их в пользовательских полях БД, поэтому любые мысли или примеры по этому поводу будут приветствоваться. Я немного нервничаю, поскольку на моем сайте есть живые пользователи, и я не хочу ломать таблицы пользователей.

Ответы [ 2 ]

1 голос
/ 01 декабря 2009

Если вы используете MySQL или PostgreSQL, вы можете сделать ALTER TABLE без потери данных.

В Django довольно просто добавить профиль для пользователя. Убедитесь, что для создания профиля, если он не существует:

try:
    profile = request.user.get_profile()
except UserProfile.DoesNotExist:
    # If DoesNotExists, Create an empty one
    profile = UserProfile(user=request.user)
    profile.save()

Больше информации здесь:

0 голосов
/ 01 декабря 2009

Существует множество способов сделать это. Я предлагаю следующее:

У Django есть структура обмена сообщениями, созданная специально для показа сообщений пользователям только один раз при их создании программным обеспечением. Всякий раз, когда X создается / модифицируется / удаляется и т. Д., Вы можете добавить сообщение пользователю через User.message_set.create (message = «Все, что вам нравится»). Это будет показано пользователю один раз. Это зависит от сессий django, которые, как я полагаю, вы используете, поскольку полагаетесь на встроенную пользовательскую модель. Эти сообщения хранятся в auth_message.

НТН

...