Django импортирует пользовательскую модель пользователя
У меня есть приложение Django с пользовательской моделью пользователя. Я пытаюсь импортировать эту модель в другое приложение. Пока я не могу понять, как это сделать.
Модель пользователя клиента в accounts/models.py является
from django.db import models
from machina.core.db.models import get_model
from django.db.models import Q
from django.contrib.auth.models import Group
# signals imports
from django.dispatch import receiver
from django.db.models.signals import (
post_save
)
Forum = get_model("forum", "Forum")
class CustomUser(AbstractUser):
first_name = models.CharField(max_length=250, null=True)
last_name = models.CharField(max_length=250, null=True)
age = models.PositiveIntegerField(null=True, blank=True)
business_name = models.CharField(max_length=250, null=True)
business_location_state = models.ForeignKey(
Forum, null=True, on_delete=models.SET_NULL, limit_choices_to={"lft": 1})
business_location_county = models.ForeignKey(
Forum, null=True, on_delete=models.SET_NULL, related_name='county')
business_location_city = models.CharField(max_length=1024, null=True)
business_zipcode = models.CharField(max_length=12, null=True)
Код, который я недавно пытался импортировать эту модель, следующий:
from django.db import models
from django.contrib.auth.models import User
from django_tenants.models import DomainMixin, TenantMixin
from django.utils.translation import ugettext as _
from localflavor.us.models import USStateField
from accounts.models import CustomUser
class Tenant(TenantMixin):
user = models.ForeignKey('CustomUser', on_delete=models.SET_NULL, null=True)
company_name = models.CharField(max_length=100)
address_1 = models.CharField(_("address"), max_length=128)
address_2 = models.CharField(_("address cont'd"), max_length=128, blank=True)
city = models.CharField(_("city"), max_length=64)
state = USStateField(_("state"))
zip_code = models.CharField(_("zip code"), max_length=5)
created_on = models.DateField(auto_now_add=True)
При попытке запустить сервер я получаю эту ошибку:
django.core.management.base.SystemCheckError: SystemCheckError: System check identified some issues:
ERRORS:
company_accounts.Tenant.user: (fields.E300) Field defines a relation with model 'CustomUser', which is either not installed, or is abstract.
company_accounts.Tenant.user: (fields.E307) The field company_accounts.Tenant.user was declared with a lazy reference to 'company_accounts.customuser', but app 'company_accounts' doesn't provide model 'customuser'.
вы добавляете модель Customuser между кавычками ... просто удалите кавычки вот так :
user = models.ForeignKey(CustomUser, on_delete=models.CASCADE)
и попробуйте еще раз