如何使用django模型从auth_user_groups表中选择记录?。
例如,您可以使用:
querySet = User.objects.get(id=1) to retrieve the row corresponding to id=1
有没有这样的方法从auth_user_groups获取数据?
提前致谢。
答案 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
表中。我将仅选择其中一些,例如set
,add
,remove
和clear
。
# 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 %}