Как заполнить базу данных Django при миграции с помощью CreateUserForm

Я работаю над приложением, в котором есть набор пользователей, созданных с помощью CreateUserForm в моем forms.py. В моем models.py у меня есть учетная запись, которая связана с пользователем, созданным в форме. Все работает отлично, за исключением того, что при выполнении миграции я хочу, чтобы она создала нового пользователя и создала новую учетную запись для этого пользователя. Я продолжаю получать исключение NOT NULL constraint failed: auth_user.last_login. Любая помощь будет просто УДИВИТЕЛЬНОЙ!!!

forms.py

from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.models import User

class CreateUserForm(UserCreationForm):
    class Meta:
        model = User
        fields = ['username', 'password1', 'password2']

models.py

from typing import DefaultDict
from django.db import models
from django.contrib.auth.models import User
from django.db.models.signals import post_save
from django.dispatch import receiver
from decimal import Decimal


# Create your models here.

class Account(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    balance = models.DecimalField(max_digits=10, decimal_places=2, default=0.00)
    userType = models.IntegerField(default=1) #1 = Player, 2 = Sponsor, 3 = Bartender, 4 = Manager, 5 = Admin
    currentHole = models.IntegerField(default=0)
    triedToSponsor = models.BooleanField(default=False)


    @receiver(post_save, sender=User)
    def create_account(sender, instance, created, **kwargs):
        if created:
            Account.objects.create(user=instance, balance=0.00, userType=1)

    @receiver(post_save, sender=User)
    def save_account(sender, instance, **kwargs):
        instance.account.save()

    def __str__(self):
        return str(self.user.username) + " has $" + str(self.balance) + " userType: " + str(self.userType) + " id: " + str(self.id)

migrations/0015_populate_db.py

from django.db import migrations
from SipNChipApp.forms import User
def populate_user(apps, schema_editor):
    Account = apps.get_model('SipNChipApp', 'Account')

    user = User.objects.create_user(username='admin', password='SipNChip')
    user.save()

    account = Account(user=user, userType=5, id=1)
    account.save()

class Migration(migrations.Migration):

    dependencies = [
        ('SipNChipApp', '0014_auto_20211109_1849'),
    ]

    operations = [
        migrations.RunPython(populate_user),
    ]
Вернуться на верх