Найти - Пользователи
Полная версия: пользователи веб-портала (вопрос новичка)
Начало » Django » пользователи веб-портала (вопрос новичка)
1
django314
Сформирована БД (mysql), и от администратора (superuser) все отлично работает через стандартный интерфейс django (/admin/).

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

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

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

3. другое

Если можно, дайте ссылочку на какое-нибуть “пошаговое руководство”, желательно на русском.
fongostev
Писать свое приложение. Через обобщенные представления и ModelForm получится не особо сложно, если чисто взаимодействие с базой и ничего более.
Пошаговое руководство - смотрите в официальной документации и на хабре, например серия статей http://habrahabr.ru/post/137168/
lorien
Если нужно раздавать права не конкретным пользователям, а группам, то можно сделать через стандартные средства https://docs.djangoproject.com/en/dev/topics/auth/default/#topic-authorization
django314
возник вопрос, а поможет ли DetailView в случае, если нужно отобразить результаты выборок из нескольких таблиц на одной странице (наверное и из одного представления)? Другими словами, мне нужно чтобы отчет на одной странице содержал результаты нескольких выборок из разных таблиц базы. Может множественное наследование поможет?

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

P.S. вообще, с формирование контекста и функцией render все неплохо получается, может и *View и не нужен. Я ищу как бы упростить написание форм ввода … требуется на одной странице сделать редактор сразу нескольких таблиц.
fongostev
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 официально заклеймлены некошерными.
django314
прошу помощи в переопределении метода с функциональным подходом:

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):

?

FishHook
django314,
читаем Лутца (или любой другой учебник по питону), потом проходим туториал джанги. Подобные вопросы задавать просто стыдно.
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