标签: django-users

django - 仅适用于特定用户组的可访问 url 模式

有没有办法限制仅对某些 django 用户组访问 url 模式?例如,以 开头的所有内容都/settings/应该只能由管理组访问。

或者也许可以创建一个新的装饰器,例如@group("administration")并将其添加到仅限于该组的每个视图?

如果可能的话,我个人更喜欢第二种方式。

python django django-views django-users

4
推荐指数
1
解决办法
2731
查看次数

从自定义Django用户模型中删除密码

如何在自定义用户模型中删除users表和User类中的密码?

我正在使用django-rest-framework令牌认证,所以我不需要密码字段.

这是我的模型:

class CustomUserManager(BaseUserManager):

    def create_user(phone, name=None):
        return User.objects.create(
            name=name, phone=phone)

    def create_superuser(name, phone=None):
        pass

class User(AbstractBaseUser):
    """
    Custom django User model.
    """
    name = models.CharField(max_length=30,
                        null=True, validators=[validate_name])

    phone = PhoneNumberField(unique=True, blank=False, null=False)

    objects = CustomUserManager()

    USERNAME_FIELD = 'phone'
    REQUIRED_FIELDS = []
Run Code Online (Sandbox Code Playgroud)

python django django-models django-users django-rest-framework

4
推荐指数
2
解决办法
1789
查看次数

Django /重复的键值违反了唯一约束

我尝试使用 OneToOneField 扩展 django auth 用户模型,但无法解决此问题。

重复的键值违反了唯一约束“users_profile_user_id_key”详细信息:键(user_id)=(67)已存在。

我查了一下这个问题,有人说数据库不同步。

视图.py

def create_profile(request):
if request.method == 'POST':
    user_form = UserRegistrationForm(request.POST)
    profile_form = UserProfileForm(request.POST)
    if user_form.is_valid() and profile_form.is_valid():
        registration = user_form.save()
        profile = profile_form.save(commit=False)
        profile.user = registration
        profile.save()
        return redirect('index')
else:
    user_form = UserRegistrationForm()
    profile_form = UserProfileForm()

return render(request, 'registration/registration.html', 
                                            {'user_form': user_form, 
                                            'profile_form': profile_form})
Run Code Online (Sandbox Code Playgroud)

模型.py

class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    user_image = models.ImageField(upload_to="blog/assets",
                               default="blog/assets/people-photo.jpg",
                               null=True)
    birth_date = models.DateField(null=True, blank=True)


@receiver(post_save, sender=User)
def create_user_profile(sender, instance, created, **kwargs):
    if created:
        Profile.objects.create(user=instance)

@receiver(post_save, sender=User)
def …
Run Code Online (Sandbox Code Playgroud)

python django view django-users

4
推荐指数
1
解决办法
2471
查看次数

如何在django中为新用户设置默认组?

如何为我创建的新用户设置默认组?我没有创建用户的自定义模型,我的django版本是1.11.

django django-models django-authentication django-users

4
推荐指数
1
解决办法
1465
查看次数

Django自定义UserManager中的self.model()

因此,我是Django的新手。尽管我的代码在遵循Django文档“在Django中自定义身份验证”后可以工作,但我不知道示例中的self.model(...)实际如何工作,它的来源以及如何与'自'。

这是在文档底部找到的示例。

from django.db import models

from django.contrib.auth.models import (
    BaseUserManager, AbstractBaseUser
)

class MyUserManager(BaseUserManager):
    def create_user(self, email, date_of_birth, password=None):
        """
        Creates and saves a User with the given email, date of
        birth and password.
        """
        if not email:
            raise ValueError('Users must have an email address')

   ->   user = self.model(
            email=self.normalize_email(email),
            date_of_birth=date_of_birth,
        )

        user.set_password(password)
        user.save(using=self._db)
        return user
...
Run Code Online (Sandbox Code Playgroud)

python authentication django django-authentication django-users

4
推荐指数
1
解决办法
1301
查看次数

Django - 检查用户是否对每个 url 进行了身份验证

在我的 html 上,我可以使用以下语法检查用户是否已登录:

{% if user.is_authenticated %}
  <div id="display_something">...</div>
{% else %}
  <p>Please Log in</p>
{% endif %}
Run Code Online (Sandbox Code Playgroud)

但是,如果我想检查用户是否为我呈现的每个 html 文件进行了身份验证,我该怎么办?我是否必须{% if ... %}为每个 html 文件复制和粘贴该块?Django 处理这个问题的方式是什么?什么是好的做法?

django django-authentication django-users

4
推荐指数
2
解决办法
5888
查看次数

获取模型类中“created_by”字段的当前用户

我目前正在开发 Django 应用程序,并且尝试将当前用户设置为模型上的默认用户,但它不起作用。

created_by = models.ForeignKey(User, default=request.user, null=True, blank=True, on_delete=models.DO_NOTHING, related_name='created_by')
Run Code Online (Sandbox Code Playgroud)

我尝试重写 save() 方法,但它也不起作用,有人对此事有任何经验吗?

预先非常感谢您的帮助

django django-models django-users django-request

4
推荐指数
1
解决办法
1万
查看次数

Django - 如何检查查询集的所有属性?

我正在寻找一种在使用 queryset 设置变量值后获取变量所有属性的方法。

例如...请参阅下面的代码...使用 user.id 或 user.first_name 我可以获得该属性的值。但是,如果我想检查它具有的所有其他属性?有什么办法可以得到。

如果我们使用user那么它只会返回 这就是我们在 admin.py 中定义的内容。

代码,我正在使用 Django Shell

from django.contrib.auth.models import User
user=User.objects.get(id=1)
user.first_name # Will return some value say testUser
user.id  # will return some value say 1
Run Code Online (Sandbox Code Playgroud)

authentication django django-models django-users python-3.x

4
推荐指数
3
解决办法
3625
查看次数

Django admin - 如何隐藏用户编辑中的某些字段?

如何在管理员用户编辑中隐藏字段?主要是我想在某些例外中隐藏权限和组选择,但排除变量不起作用:/

django django-admin django-users

3
推荐指数
1
解决办法
7230
查看次数

Django - 可以在用户个人资料中存储i18n.set_language()

我希望i18n.set_language()用户选择语言时将语言存储到最终可用的用户配置文件中.

Django也应该用它来发现我的语言.

这是个好主意吗 ?如果是,我怎么能这样做?

python django internationalization django-users

3
推荐指数
1
解决办法
880
查看次数