Форум сайта python.su
Сформирована БД (mysql), и от администратора (superuser) все отлично работает через стандартный интерфейс django (/admin/).
Необходимо большому количеству пользователей 500-1000 чел. (разделенному на несколько групп по правам) дать возможность работать с базой данных. Как это правильно организовать в django (просто у меня нет опыта вообще):
1. пускать их в стандартный admin и там же настроить все разрешения на действия с таблицами - вижу в базе кучу подходящих таблиц: auth_group, auth_group_permissions, …
2. писать свое приложение со своими представлениями, формами ввода информации и логикой …
3. другое
Если можно, дайте ссылочку на какое-нибуть “пошаговое руководство”, желательно на русском.
Офлайн
Писать свое приложение. Через обобщенные представления и ModelForm получится не особо сложно, если чисто взаимодействие с базой и ничего более.
Пошаговое руководство - смотрите в официальной документации и на хабре, например серия статей http://habrahabr.ru/post/137168/
Офлайн
Если нужно раздавать права не конкретным пользователям, а группам, то можно сделать через стандартные средства https://docs.djangoproject.com/en/dev/topics/auth/default/#topic-authorization
Офлайн
возник вопрос, а поможет ли DetailView в случае, если нужно отобразить результаты выборок из нескольких таблиц на одной странице (наверное и из одного представления)? Другими словами, мне нужно чтобы отчет на одной странице содержал результаты нескольких выборок из разных таблиц базы. Может множественное наследование поможет?
Тоже же вопрос и по Form* .
P.S. вообще, с формирование контекста и функцией render все неплохо получается, может и *View и не нужен. Я ищу как бы упростить написание форм ввода … требуется на одной странице сделать редактор сразу нескольких таблиц.
Офлайн
django314Можно переопределить get_context_data
возник вопрос, а поможет ли DetailView в случае, если нужно отобразить результаты выборок из нескольких таблиц на одной странице (наверное и из одного представления)? Другими словами, мне нужно чтобы отчет на одной странице содержал результаты нескольких выборок из разных таблиц базы. Может множественное наследование поможет?
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
Отредактировано fongostev (Апрель 15, 2014 23:07:01)
Офлайн
прошу помощи в переопределении метода с функциональным подходом:
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)
def get_context_data(self, *args, **kwargs):
def get_queryset(self):
Отредактировано django314 (Апрель 16, 2014 22:50:19)
Офлайн
django314,
читаем Лутца (или любой другой учебник по питону), потом проходим туториал джанги. Подобные вопросы задавать просто стыдно.
Офлайн