Проблемы, расширяющие модель Django-Oscar AbstractUser
Я пытался форкнуть приложение django-oscar customer
. Я следовал рекомендациям в их документации, но я не могу применить миграции из-за ValueError: Related model 'customer.user' cannot be resolved
.
Моя директория проекта выглядит следующим образом:
project
├── config
│ ├── asgi.py
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── customer
│ ├── apps.py
│ ├── __init__.py
│ ├── migrations
│ │ ├── 0001_initial.py
│ │ ├── 0002_auto_20150807_1725.py
│ │ ├── 0003_update_email_length.py
│ │ ├── 0004_email_save.py
│ │ ├── 0005_auto_20181115_1953.py
│ │ ├── 0006_auto_20190430_1736.py
│ │ ├── 0007_auto_20200801_0817.py
│ │ ├── 0008_alter_productalert_id.py
│ │ ├── 0009_user.py
│ │ ├── __init__.py
│ ├── models.py
├── manage.py
Вот шаги, которым я следовал, чтобы прийти к тому состоянию, в котором я нахожусь сейчас:
./manage.py oscar_fork_app customer .
- Я добавил приложение
customer
в свой списокINSTALLED_APPS
DJANGO_APPS = [
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
"django.contrib.sites",
"django.contrib.flatpages",
]
PROJECT_APPS = [
"customer",
# "customer.apps.CustomerConfig",,
]
OSCAR_APPS = [
"oscar.config.Shop",
"oscar.apps.analytics.apps.AnalyticsConfig",
"oscar.apps.checkout.apps.CheckoutConfig",
"oscar.apps.address.apps.AddressConfig",
"oscar.apps.shipping.apps.ShippingConfig",
"oscar.apps.catalogue.apps.CatalogueConfig",
"oscar.apps.catalogue.reviews.apps.CatalogueReviewsConfig",
"oscar.apps.communication.apps.CommunicationConfig",
"oscar.apps.partner.apps.PartnerConfig",
"oscar.apps.basket.apps.BasketConfig",
"oscar.apps.payment.apps.PaymentConfig",
"oscar.apps.offer.apps.OfferConfig",
"oscar.apps.order.apps.OrderConfig",
# "oscar.apps.customer.apps.CustomerConfig",
"oscar.apps.search.apps.SearchConfig",
"oscar.apps.voucher.apps.VoucherConfig",
"oscar.apps.wishlists.apps.WishlistsConfig",
"oscar.apps.dashboard.apps.DashboardConfig",
"oscar.apps.dashboard.reports.apps.ReportsDashboardConfig",
"oscar.apps.dashboard.users.apps.UsersDashboardConfig",
"oscar.apps.dashboard.orders.apps.OrdersDashboardConfig",
"oscar.apps.dashboard.catalogue.apps.CatalogueDashboardConfig",
"oscar.apps.dashboard.offers.apps.OffersDashboardConfig",
"oscar.apps.dashboard.partners.apps.PartnersDashboardConfig",
"oscar.apps.dashboard.pages.apps.PagesDashboardConfig",
"oscar.apps.dashboard.ranges.apps.RangesDashboardConfig",
"oscar.apps.dashboard.reviews.apps.ReviewsDashboardConfig",
"oscar.apps.dashboard.vouchers.apps.VouchersDashboardConfig",
"oscar.apps.dashboard.communications.apps.CommunicationsDashboardConfig",
"oscar.apps.dashboard.shipping.apps.ShippingDashboardConfig",
]
INSTALLED_APPS = DJANGO_APPS + PROJECT_APPS + OSCAR_APPS
Как вы видите, я попробовал "оскаровский" способ добавления приложения, указав путь к методу CustomerConfig
, который они генерируют своей командой, но это не помогло, поэтому я попробовал обычный "django" способ и он тоже не сработал.
- Затем я добавил свою новую модель к ключам настроек
AUTH_USER_MODEL
следующим образом:
AUTH_USER_MODEL = "customer.User"
Когда я пытаюсь сделать миграции, все работает как надо, и создает миграцию под номером 9 в списке, который вы видите выше, но когда я пытаюсь применить миграции, я получаю эту ошибку:
Есть ли что-то, чего мне не хватает в документации? Есть идеи ?
Похоже, что у вас проблема с именем поля. Должно ли AUTH_USER_MODEL = "customer.User"
быть AUTH_USER_MODEL = "customer.user"
?
Мне наконец удалось решить эту проблему, скопировав содержимое нового списка миграции operations
в начало operations
списка 0001_initial.py
файла миграции, предоставленного django-oscar.