شیرین
3 سال پیش توسط شیرین مطرح شد
0 پاسخ

کاربر شخصی سازی شده در جنگو

سلام دوستان من مدل یوزر خودم نوشتم و طبق خود سایت جنگو گفته group vروunregister کردم سوال برام پیش اومده اینطوری که همه ی کاربران میتونن تمام اطلاعات تغییر بدن یا حذف کنن حتی میتونن اطلاعات superuserهم تغییر بدن منطق این کار متوجه نشدم ؟
و اینکه خودم میخوام userpermission , group اضافه کنم تو ادمین نمایش میده ولی ذخیره نمیشه و عملی انجام نمیده ممنون راهنماییم کنید

class CustomUser(AbstractUser):
    username = models.CharField(max_length=50, verbose_name='نام کاربری', blank=True, null=True,
                                unique=True,
                                help_text=(
                                    "Required. 50 characters or fewer. Letters, digits and @/./+/-/_ only."
                                ),
                                error_messages={
                                    "unique": "A user with that username already exists.",
                                },

                                )
    email = models.EmailField(verbose_name='ایمیل')
    phone = models.BigIntegerField(verbose_name='تلفن همراه', blank=True, null=True, unique=True, )
    age = models.PositiveIntegerField(verbose_name='سن', null=True, blank=True)
    address = models.CharField(verbose_name='آدرس', max_length=300, null=True, blank=True)
    profile_image = models.ImageField(verbose_name='تصویر', upload_to='profile/', null=True, blank=True)
    postal_code = models.CharField(verbose_name='کدپستی', max_length=20, null=True, blank=True)
    create = models.DateTimeField(auto_now_add=True, verbose_name='تاریخ', blank=True, null=True, )
    is_active = models.BooleanField(verbose_name='فعال بودن', default=True)
    is_admin = models.BooleanField(verbose_name='وضعیت کارمندی', default=False)
    is_superuser = models.BooleanField(verbose_name='ابرکاربر', default=False)
    USERNAME_FIELD = 'username'
    REQUIRED_FIELDS = ['phone', ]
    objects = CustomUserManager()

    class Meta:
        verbose_name = "کاربر"
        verbose_name_plural = "کاربران"

    def __str__(self):
        return self.username

    def has_perm(self, perm, obj=None):
        return True

    def has_module_perms(self, app_label):
        return True

    def get_user_permissions(self, obj=None):
        return _user_get_permissions(self, obj, 'user')

    def get_all_permissions(self, obj=None):
        return _user_get_permissions(self, obj, 'all')

    def get_group_permissions(self, obj=None):
        return self.get_group_permissions(self, obj, 'user')

    @property
    def is_staff(self):
        return self.is_admin

    # @property
    # def groups(self):
    #     return self._groups

class CustomUserAdmin(UserAdmin):
addform = CustomUserCreateForm

form = CustomUserChangeForm
model = CustomUser
list_display = ('username', 'phone', 'email', 'is_admin', 'create',)
list_filter = ('phone', 'create', 'is_active', 'groups',)
fieldsets = (
    ('کاربران', {'fields': ('phone', 'password')}),
    ('اطلاعات شخصی', {'fields': ('first_name', 'last_name', 'email')}),
    ('مجوزها', {'fields': ('is_active', 'is_superuser', 'is_admin','groups','user_permissions',)}),
    ('سایر اطلاعات', {'fields': ('age', 'address', 'postal_code', 'profile_image')}),

)
add_fieldsets = UserAdmin.add_fieldsets + (
    (None, {'fields': ('phone', 'email',)}),

)

search_fields = ('phone',)
ordering = ('phone',)
filter_horizontal = (
    "groups",
    "user_permissions",
)