Стандартный способ проверки разрешений в Django - это использование отдельных флагов разрешений, а не проверка имени группы.
Если вам необходимо проверить имена групп, зная, что «Пользователи к группам» - это отношение «многие ко многим», вы можете получить группу first в списке групп в вашем шаблоне примерно так:
{{ user.groups.all.0 }}
или использовать его в условных выражениях (не проверено, но должно работать):
{% ifequal user.groups.all.0 'Sales' %}
...
{% endif %}
Если вы выберете предпочитаемую модель разрешений, вы сделаете что-то вроде следующего.
...
{% if perms.vehicle.can_add_vehicle %}
<li><a href="/add_vehicle">Add a New Record </a></li>
{% endif %}
{% if perms.vehicle.can_change_vehicle %}
<li><a href="/edit_vehicle">Edit Existing Record </a></li>
{% endif %}
...
Это разрешения, автоматически созданные для вас syncdb
при условии, что ваше приложение называется vehicle
, а модель называется Vehicle
.
Если пользователь является суперпользователем, он автоматически получает все разрешения.
Если пользователь входит в группу «Продажи», у него не будет этих разрешений для транспортных средств (если вы, конечно, не добавили их в группу).
Если пользователь входит в группу управления, он может иметь эти разрешения, но вам необходимо добавить их в группу на сайте администратора Django.
Что касается другого вопроса, перенаправьте при входе в систему на основе группы пользователей: «Пользователи к группам» - это отношение «многие ко многим», поэтому не стоит использовать их как «один ко многим».