I'm extending django.contrib.auth.User model with my model:
class Farmer(models.Model):
user = models.OneToOneField(get_user_model(), on_delete=models.CASCADE, related_name="farmer")
mob_phone = models.CharField(max_length=12)
I want to create some of these Farmer instances during migrations, so i have a python-migration job, which goes after all other migrations :
def create_farmers(apps, schema_editor):
db_alias = schema_editor.connection.alias
Farmer = apps.get_model("farmer", "Farmer")
User = get_user_model()
u = User.objects.using(db_alias).create(username="kek" ,password="lol")
farmer = Farmer.objects.using(db_alias).create(id=1, user=u, mob_phone="1")
I run this job in operations section just like all other migrations:
operations = [
migrations.RunPython(create_farmers, revert_create_farmers),
]
But Django is laughing in my face with
ValueError: Cannot assign "<User: kek>": "Farmer.user" must be a "User" instance.
This is knocking me off, because u is definitely as User instance!