Как заполнить базу данных 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),
]