Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » пользователи веб-портала (вопрос новичка) [RSS Feed]

#1 Апрель 10, 2014 22:50:36

django314
Зарегистрирован: 2014-04-02
Сообщения: 28
Репутация: +  0  -
Профиль   Отправить e-mail  

пользователи веб-портала (вопрос новичка)

Сформирована БД (mysql), и от администратора (superuser) все отлично работает через стандартный интерфейс django (/admin/).

Необходимо большому количеству пользователей 500-1000 чел. (разделенному на несколько групп по правам) дать возможность работать с базой данных. Как это правильно организовать в django (просто у меня нет опыта вообще):

1. пускать их в стандартный admin и там же настроить все разрешения на действия с таблицами - вижу в базе кучу подходящих таблиц: auth_group, auth_group_permissions, …

2. писать свое приложение со своими представлениями, формами ввода информации и логикой …

3. другое

Если можно, дайте ссылочку на какое-нибуть “пошаговое руководство”, желательно на русском.

Офлайн

#2 Апрель 14, 2014 21:29:00

fongostev
От: Moskau
Зарегистрирован: 2012-04-03
Сообщения: 62
Репутация: +  4  -
Профиль   Отправить e-mail  

пользователи веб-портала (вопрос новичка)

Писать свое приложение. Через обобщенные представления и ModelForm получится не особо сложно, если чисто взаимодействие с базой и ничего более.
Пошаговое руководство - смотрите в официальной документации и на хабре, например серия статей http://habrahabr.ru/post/137168/

Офлайн

#3 Апрель 15, 2014 11:14:09

lorien
От:
Зарегистрирован: 2006-08-20
Сообщения: 755
Репутация: +  37  -
Профиль  

пользователи веб-портала (вопрос новичка)

Если нужно раздавать права не конкретным пользователям, а группам, то можно сделать через стандартные средства https://docs.djangoproject.com/en/dev/topics/auth/default/#topic-authorization

Офлайн

#4 Апрель 15, 2014 20:29:10

django314
Зарегистрирован: 2014-04-02
Сообщения: 28
Репутация: +  0  -
Профиль   Отправить e-mail  

пользователи веб-портала (вопрос новичка)

возник вопрос, а поможет ли DetailView в случае, если нужно отобразить результаты выборок из нескольких таблиц на одной странице (наверное и из одного представления)? Другими словами, мне нужно чтобы отчет на одной странице содержал результаты нескольких выборок из разных таблиц базы. Может множественное наследование поможет?

Тоже же вопрос и по Form* .

P.S. вообще, с формирование контекста и функцией render все неплохо получается, может и *View и не нужен. Я ищу как бы упростить написание форм ввода … требуется на одной странице сделать редактор сразу нескольких таблиц.

Офлайн

#5 Апрель 15, 2014 23:06:42

fongostev
От: Moskau
Зарегистрирован: 2012-04-03
Сообщения: 62
Репутация: +  4  -
Профиль   Отправить e-mail  

пользователи веб-портала (вопрос новичка)

django314
возник вопрос, а поможет ли DetailView в случае, если нужно отобразить результаты выборок из нескольких таблиц на одной странице (наверное и из одного представления)? Другими словами, мне нужно чтобы отчет на одной странице содержал результаты нескольких выборок из разных таблиц базы. Может множественное наследование поможет?
Можно переопределить get_context_data
def get_context_data(self, *args, **kwargs):
    context = super(ThisDataView, self).get_context_data(*args, **kwargs)
    context['part1'] = Model1.objects.filter(field1=1)
    context['part2'] = Model2.objects.filter(field2=2)
    return context
Еще можно строить страницу из блоков, которые будут подтягиваться через js.get, так получится избежать множества моделей в одном представлении. В общем, выбор есть.
По формам подобным образом, правда не надо забывать правильно строить метод post при обработке реквеста. Функциональные представления в django после 1.4 официально заклеймлены некошерными.

Отредактировано fongostev (Апрель 15, 2014 23:07:01)

Офлайн

#6 Апрель 16, 2014 22:27:50

django314
Зарегистрирован: 2014-04-02
Сообщения: 28
Репутация: +  0  -
Профиль   Отправить e-mail  

пользователи веб-портала (вопрос новичка)

прошу помощи в переопределении метода с функциональным подходом:

def DetailView(request,m_id):
m1 = Model1.objects.get( id = m_id )
m2_list = Model2.objects.filter( id = m_id )
m3_list = Model3.objects.filter( id = m_id )
...
context = { 'm_id' : m_id, 'm2_list': m2_list ...}
return render(request,'app1/detailview.html',context)

P.S.1 m_id - не могу передать

P.S.2
а чем отличается

def get_context_data(self, *args, **kwargs):

 def get_queryset(self):

?

Отредактировано django314 (Апрель 16, 2014 22:50:19)

Офлайн

#7 Апрель 17, 2014 06:10:39

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

пользователи веб-портала (вопрос новичка)

django314,
читаем Лутца (или любой другой учебник по питону), потом проходим туториал джанги. Подобные вопросы задавать просто стыдно.



Офлайн

  • Начало
  • » Django
  • » пользователи веб-портала (вопрос новичка)[RSS Feed]

Board footer

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

Powered by DjangoBB

Lo-Fi Version