Django-针对不同用户的自定义验证

用户名

我有一个称为bk_time的日期时间字段。现在,我想根据不同的用户编写bk_time的自定义验证

例如,我有个用户Staff_AStaff_B并且Superuser

  1. Staff_A 只能设置时间=周一至周五9 am-12am
  2. Staff_B 只能设置时间=仅星期一
  3. Superuser 没有限制

我已经推荐了Django Doc Validators但它似乎不适用于多重验证

我尝试编写save_formsetDjango Doc Admin。但是似乎无法引发ValidationError

models.py

class Location(models.Model):
    name = models.CharField('Location', max_length=100)

class Room(models.Model):
    room_label = models.CharField('Room Lebel', max_length=100)
    bk_time= models.DateTimeField('Booking Time')

管理员

class RoomInline(admin.StackedInline):
    model = Room
    extra = 0

class LocationAdmin(admin.ModelAdmin):
    list_display = ['id', 'name']
    fields = ('name')
    inlines = [RoomInline]

如果这是相关的,那么我正在使用Django 1.4。

豪尔赫·雷涛(Jorge Leitao)

我认为这必须在表单验证中进行,而不是在字段验证中进行。这是因为您的验证取决于两个独立的字段。

特别是,这与身份验证非常相似:您的验证取决于用户和另一个字段。看一下Django如何实现其身份验证(来自django.contrib.auth):

class AuthenticationForm(forms.Form):
    [...]
    def clean(self):
        username = self.cleaned_data.get('username')
        password = self.cleaned_data.get('password')

        if username and password:
            self.user_cache = authenticate(username=username,
                                           password=password)
            if self.user_cache is None:
                raise forms.ValidationError(
                    self.error_messages['invalid_login'],
                    code='invalid_login',
                    params={'username': self.username_field.verbose_name},
                )
            elif not self.user_cache.is_active:
                raise forms.ValidationError(
                    self.error_messages['inactive'],
                    code='inactive',
                )
        return self.cleaned_data

在您的情况下,您想对ValidationError给定的约束提出,否则返回cleaned_data。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Django自定义用户电子邮件帐户验证

来自分类Dev

Django Rest框架未验证自定义用户模型

来自分类Dev

无法在Django 3中验证自定义用户

来自分类Dev

无法在Django中验证自定义用户模型

来自分类Dev

Django admin中的自定义验证

来自分类Dev

Django自定义字段验证

来自分类Dev

Django身份验证自定义

来自分类Dev

django自定义表单验证错误

来自分类Dev

添加用户时,不同用户角色的不同用户自定义字段

来自分类Dev

Django(1.6)自定义用户模型

来自分类Dev

Django自定义用户模型

来自分类Dev

Django自定义用户错误

来自分类Dev

自定义 Django 用户模型

来自分类Dev

Django:已认证的不同用户模型

来自分类Dev

具有Django 1.5,自定义字段和共享身份验证的多种用户类型

来自分类Dev

自定义用户模型中的django 1.6身份验证

来自分类Dev

django用户自定义模型身份验证和授权

来自分类Dev

向django-rest-framework-simple-jwt添加自定义用户身份验证

来自分类Dev

Django admin中的自定义M2M验证未显示给用户

来自分类Dev

在Django中使用自定义用户模型登录时的身份验证问题

来自分类Dev

带有Django 1.5,自定义字段和共享身份验证的多种用户类型

来自分类Dev

Django自定义用户模型身份验证不起作用

来自分类Dev

django身份验证与“自定义用户”模型不起作用

来自分类Dev

使用Django的自定义用户模型(Django1.6)

来自分类Dev

Django:使用自定义用户模型创建超级用户

来自分类Dev

asp.net mvc中不同用户类型的自定义身份验证和授权

来自分类Dev

Django自定义登录从不验证为什么?

来自分类Dev

Django 1.7中的自定义密码验证

来自分类Dev

Django注册,自定义注册和验证

Related 相关文章

热门标签

归档