Получение 'No field found in Account with column name ""' при создании данных для проекта с использованием библиотеки django-multitenant
Я пытаюсь создать сценарий миграции данных для вставки исходных данных
У меня есть файл миграции следующего вида
Account = apps.get_model("quickstart", "Account")
Account.objects.using(db_alias).bulk_create([
Account(name="johndoe", domain="domain", subdomain="subdomain", country=Country.objects.get(name="USA")),
Account(name="jilldoe", domain="domain", subdomain="subdomain", country=Country.objects.get(name="USA")),
Account(name="milldoe", domain="domain", subdomain="subdomain", country=Country.objects.get(name="USA")),
Account(name="velidoe", domain="domain", subdomain="subdomain", country=Country.objects.get(name="Turkiye")),
Account(name="alidoe", domain="domain", subdomain="subdomain", country=Country.objects.get(name="Turkiye")),
Account(name="pierredoe", domain="domain", subdomain="subdomain", country=Country.objects.get(name="France")),
])
Когда я выполняю ./manage migrate, я получаю ошибку ниже
Код моего счета приведен ниже, а tenant_id определен
class Account(TenantModel):
name = models.CharField(max_length=255)
domain = models.CharField(max_length=255)
subdomain = models.CharField(max_length=255)
country = models.ForeignKey(Country, on_delete=models.CASCADE)
tenant_id = "id"
Даже если tenant_id определен, у меня возникают проблемы. В чем может быть проблема?
Нашел решение проблемы
При использовании django-multitenant мы должны импортировать классы напрямую. Мы не должны получать классы с помощью app.get_model, поскольку django-multitenant не может определить колонку tenant_id из экземпляра класса, возвращаемого из app.get_model. Я удалил строку app.get_model и добавил оператор импорта, как показано ниже
from ..models import *
Account.objects.using(db_alias).bulk_create([
Account(name="johndoe", domain="domain", subdomain="subdomain", country=Country.objects.get(name="USA")),
Account(name="jilldoe", domain="domain", subdomain="subdomain", country=Country.objects.get(name="USA")),
Account(name="milldoe", domain="domain", subdomain="subdomain", country=Country.objects.get(name="USA")),
Account(name="velidoe", domain="domain", subdomain="subdomain", country=Country.objects.get(name="Turkiye")),
Account(name="alidoe", domain="domain", subdomain="subdomain", country=Country.objects.get(name="Turkiye")),
Account(name="pierredoe", domain="domain", subdomain="subdomain", country=Country.objects.get(name="France")),
])