django models:如何从django auth_user_groups表中选择记录

时间:2011-12-05 06:16:20

标签: python django

如何使用django模型从auth_user_groups表中选择记录?。

例如,您可以使用:

querySet =  User.objects.get(id=1) to retrieve the row corresponding to id=1

有没有这样的方法从auth_user_groups获取数据?

提前致谢。

6 个答案:

答案 0 :(得分:1)

要获取用户的所有群组,您可以执行此操作:

user.groups.all()

获取群组的所有用户:

group.user_set.all()

我想这应该回答你的问题,因为auth_user_groups表中没有更多信息。

答案 1 :(得分:1)

如果我理解正确,你需要这个:

from django.contrib.auth.models import Group
qs = Group.objects.get(id=1)

答案 2 :(得分:0)

user=User.objects.get(id=1)
group=Group.objects.get(id=1)
group_1=user.groups.get(id=group.id)

这将返回auth_user_groups表中的组条目,其中user_id = 1且group_id = 1.

答案 3 :(得分:0)

user = models.User.objects.get(id = 1)

all_values_from_group = Group.objects.get(user = user)

答案 4 :(得分:0)

首先获取用户对象,

>>> user = User.objects.get(id=some_user_id)

使用dir()函数时,您可以看到user.groups对象的所有可用方法和属性的列表。

>>> dir(user.groups)
['__call__', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__slotnames__', '__str__', '__subclasshook__', '__weakref__', '_add_items', '_apply_rel_filters', '_build_remove_filters', '_constructor_args', '_db', '_get_queryset_methods', '_hints', '_insert', '_queryset_class', '_remove_items', '_remove_prefetched_objects', '_set_creation_counter', '_update', 'add', 'aggregate', 'all', 'annotate', 'auto_created', 'bulk_create', 'check', 'clear', 'complex_filter', 'contribute_to_class', 'core_filters', 'count', 'create', 'creation_counter', 'dates', 'datetimes', 'db', 'db_manager', 'deconstruct', 'defer', 'difference', 'distinct', 'do_not_call_in_templates', 'earliest', 'exclude', 'exists', 'explain', 'extra', 'filter', 'first', 'from_queryset', 'get', 'get_by_natural_key', 'get_or_create', 'get_prefetch_queryset', 'get_queryset', 'in_bulk', 'instance', 'intersection', 'iterator', 'last', 'latest', 'model', 'name', 'none', 'only', 'order_by', 'pk_field_names', 'prefetch_cache_name', 'prefetch_related', 'query_field_name', 'raw', 'related_val', 'remove', 'reverse', 'select_for_update', 'select_related', 'set', 'source_field', 'source_field_name', 'symmetrical', 'target_field', 'target_field_name', 'through', 'union', 'update', 'update_or_create', 'use_in_migrations', 'using', 'values', 'values_list']

因此,您可以使用用户组的所有方法和属性,这意味着auth_user_groups表中。我将仅选择其中一些,例如setaddremoveclear

# you can set list of groups for the user
user.groups.set([group_list])

# you can add group one by one for the user
user.groups.add(group, group, ...)

# you can remove group one by one from the user
user.groups.remove(group, group, ...)

# you can clear all the groups which are belongs to the user
user.groups.clear()

在这里您可以参考文档中有关Django Authentication System的更多信息。

答案 5 :(得分:0)

这是为了检索登录的用户组 在views.py中

    users = User.objects.all()

然后在 html 中

              {% if request.user.is_authenticated %}
                    {% for user_group in user.groups.all %}
                        {{ user_group.name }}
                    {% endfor %}
                {% endif %}