TypeError: UserManager.create_superuser() missing 1 required positional argument: 'X'

Viewed 32

When I established a connection with MYSQL for the existing django data and trying to create a super user, above issue is raising. I cleared the db.sqlite3 database and it's migrations also

models.py:

from django.db import models

from django.contrib.auth.models import AbstractUser

class User(AbstractUser):

    name = models.CharField(max_length=20, null=True)
    email = models.EmailField(unique=True, null=True)
    bio = models.TextField(max_length=200, null=True)
    avatar = models.ImageField(null=True, default="avatar.svg")
    USERNAME_FIELD = 'email'
    REQUIRED_FIELDS = []

forms.py:

from django.forms import ModelForm
from django.contrib.auth.forms import UserCreationForm
from .models import Room, User


class MyUserCreationForm(UserCreationForm):

    class Meta:
        model=User
        fields= ['name', 'username', 'email', 'password1', 'password2']

class UserForm(ModelForm):

    class Meta:
        model=User # assigning 'User' table or class from the models(db)
        fields = ['avatar', 'name', 'username', 'email', 'bio']    

views.py:

def loginPage(request):
      
    page = 'login'
    if request.user.is_authenticated:
        return redirect('home')
    if request.method == 'POST':
        username = request.POST.get('username')
        password = request.POST.get('password')
        try:    
            user = User.objects.get(username=username)
        except:
            messages.error(request, 'Incorrect Username')
        user=authenticate(request, username=username, password=password)
        #If cond to check the correct user or not
        if user is not None:
            login(request, user)
            return redirect('home')
        else:
            messages.error(request, 'Incorrect Username or password')

    context={'page':page}
    return render(request, 'base/login_register.html', context)

def logoutUser(request):

    logout(request)
    return redirect('home')

def registerPage(request):

    page = 'register'
    form = MyUserCreationForm()
    if request.method == 'POST':
        form = MyUserCreationForm(request.POST)
        if form.is_valid():
            #commit is to get the instance from form but only 'in memory', not in db
            # Before save it you want to make some changes
            user = form.save(commit=False)
            user.username = user.username.lower()
            user.save() #save the user
            login(request,user)
            return redirect('home')
        else:
            messages.error(request,'An error occured during registration')
    context = {'form':form,'page':page}
    return render(request, 'base/login_register.html', context)

MySQL connection:

DATABASES = {

    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'studymate',
        'HOST': 'localhost',
        'PORT': '3306',
        'USER': 'root',
        'PASSWORD': '1234',
    }
}
0 Answers
Related