Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 扩展用户模型-条件URL重定向_Python_Django_Django Models_Django Views_Django Urls - Fatal编程技术网

Python 扩展用户模型-条件URL重定向

Python 扩展用户模型-条件URL重定向,python,django,django-models,django-views,django-urls,Python,Django,Django Models,Django Views,Django Urls,我已经为我的Django项目扩展了用户模型,以允许本地管理应用程序具有更大的灵活性。我有许多不同的用户组,在登录时,我想重定向到一个唯一的模板。用户将仅被分配到一个组。在views.py文件中尝试执行此操作时,我收到一个AttributeError,说明“type object User没有属性'groups'。即使使用User.group.filter,“filter”也会发生属性错误。在模板中,我可以通过“{User.groups.all.0}”正确检索用户的组信息 有关用户模型和views

我已经为我的Django项目扩展了用户模型,以允许本地管理应用程序具有更大的灵活性。我有许多不同的用户组,在登录时,我想重定向到一个唯一的模板。用户将仅被分配到一个组。在views.py文件中尝试执行此操作时,我收到一个AttributeError,说明“type object User没有属性'groups'。即使使用User.group.filter,“filter”也会发生属性错误。在模板中,我可以通过“{User.groups.all.0}”正确检索用户的组信息

有关用户模型和views.py,请参见下面的代码

扩展用户模型:

class User(AbstractBaseUser, PermissionsMixin):

    username = models.CharField(_('username'), max_length=30, unique=True,
    validators=[validators.RegexValidator(re.compile('^[\w.@+-]+$'), _('Enter a valid username.'),
    _('invalid'))])
   first_name = models.CharField(_('first name'), max_length=50)
   last_name = models.CharField(_('last name'), max_length=50)
   email = models.EmailField(_('email address'), max_length=255, unique=True,
   is_staff = models.BooleanField(_('staff status'), default=False,
   is_active = models.BooleanField(_('active'), default=False,
   date_joined = models.DateTimeField(_('date joined'), default=timezone.now)

   USERNAME_FIELD = 'username'
   #added all required fields except email
   REQUIRED_FIELDS = ['first_name', 'last_name', 'email']
   objects = UserManager()
Views.py:

from django.shortcuts import render, render_to_response, RequestContext
from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse
from django.contrib.auth.decorators import login_required


from User_Profile.models import User

@login_required
def home(request):
    if User.groups.filter(name__in["Group1"]):
        return HttpResponseRedirect(reverse('laucnh'))

从以下位置获取当前用户:

您还可以利用:

如果查询集包含任何结果,则返回True,否则返回False。 这将尝试以最简单、最快的方式执行查询 可能,但它执行的查询与普通查询几乎相同 查询集查询


事实上,用户模型类本身没有任何组。只有一个用户实例(如当前用户)有组。是的,就是这样。输入request.User后,工作正常。谢谢。
request.user.groups.filter(name__in["Group1"])
if request.user.groups.filter(name__in["Group1"]).exists():