Пользователь и суперпользователь удаляются автоматически - PullRequest
0 голосов
/ 03 июня 2019

Я работаю над проектом, в котором использую класс django AbstractUser. Я уже создал суперпользователя. Всякий раз, когда я создаю нового пользователя из интерфейса или из администратора, все существующие пользователи удаляются, включая суперпользователя. Я не могу найти никаких ошибок в моем коде.

models.py:

from django.db import models
from django.conf import settings
from django.contrib.auth.models import AbstractUser
from datetime import date

class CustomUser(AbstractUser):
    employee_id = models.IntegerField(primary_key=True,default=0)
    dateofbirth = models.DateField(default=date.today)
    contact = models.CharField(max_length=10,default="No contact")
    address = models.CharField(max_length=300,default="No address given")
    image = models.ImageField(default=None)
    manager_id = models.IntegerField(default=0)
    date_of_joining = models.DateField(default=date.today)
    date_of_termination = models.DateField(default=date.today)
    status = models.CharField(max_length=8,default="inactive")
    role_id = models.IntegerField(default=0)

    def __str__(self):
        return self.username

views.py

from django.contrib.auth import login, authenticate
from django.contrib.auth.forms import UserCreationForm
from .forms import CustomUserCreationForm
from django.shortcuts import render, redirect

def signup(request):
    if request.method == 'POST':
        form = CustomUserCreationForm(request.POST)
        if form.is_valid():
            form.save()
            username = form.cleaned_data.get('username')
            raw_password = form.cleaned_data.get('password1')
            user = authenticate(username=username, password=raw_password)
            login(request, user)
            return redirect('emp_dashboard')
    else:
        form = CustomUserCreationForm()
    return render(request, 'signup.html', {'form': form})

forms.py

from django import forms
from django.contrib.auth.forms import UserCreationForm, UserChangeForm
from .models import CustomUser

class CustomUserCreationForm(UserCreationForm):

    class Meta(UserCreationForm):
        model = CustomUser
        fields = ('username', 'email')

class CustomUserChangeForm(UserChangeForm):

    class Meta:
        model = CustomUser
        fields = ('username', 'email')

settings.py

INSTALLED_APPS = [
    'portal', #App Name
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

AUTH_USER_MODEL = 'portal.CustomUser'

admin.py

from django.contrib import admin
from django.contrib.auth import get_user_model
from django.contrib.auth.admin import UserAdmin
from django.contrib.admin.sites import AlreadyRegistered
from django.apps import apps
from .forms import CustomUserCreationForm, CustomUserChangeForm
from .models import CustomUser

class CustomUserAdmin(UserAdmin):
    add_form = CustomUserCreationForm
    form = CustomUserChangeForm
    model = CustomUser
    list_display = ['username','email','is_superuser']
    fieldsets = (
        (('User'), {'fields': ('username', 'email','is_active','is_superuser','is_staff','employee_id','dateofbirth','contact','address','image','manager_id','date_of_joining','date_of_termination','status','role_id')}),
    )
admin.site.register(CustomUser, CustomUserAdmin)

for model in apps.get_app_config('portal').models.values():
    try:
        admin.site.register(model)
    except AlreadyRegistered:
        pass
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...