Попытка поместить какую-либо модель как встроенную в двух других моделях приводит к некоторой странной ошибке (в заголовке).
У меня есть две модели заказов - удаленная и локальная.И в каждый из них мне нужно вставить продукты в каком-то неограниченном количестве.Другая цель - показать полный список продуктов, заказанных локально и удаленно в разных списках.
Решение для второй цели: использование второй модели продукта, унаследованной от первой, с собственным менеджером (объектами).
Решения для цели номер один: использовать строки в административных классах заказов для добавления точно соответствующего товара в заказ (локальный продукт к локальному заказу и удаленный продукт к удаленному заказу).
Добавление встроенного локального продукта администратору локального продуктапокупка отлично работает.Но добавление inline удаленного продукта в поле inlines административного файла удаленного заказа возвращает ошибку для класса admin удаленного заказа:
must inherit from 'InlineModelAdmin'.
Также возвращает ошибку даже после удаления inline из административного файла локального заказа.
Некоторый код, подобный этому, в models.py:
class RemotePurchaseModel(models.Model):
title = models.CharField
number = models.IntegerField
...
class LocalPurchaseModel(models.Model):
title = models.CharField
number = models.IntegerField
...
class LocalProductModel(models.Model):
remote = models.BooleanField(default=False)
actual_order = models.ForeignKey(to=LocalPurchaseModel, blank=True, null=True)
remote_purchase = models.ForeignKey(to=RemotePurchaseModel, blank=True, null=True)
...
class RemoteProductManager(djando.db.models.Manager):
def get_queryset(self):
return super(PurchasedProductManager, self).get_queryset().filter(remote=True)
class RemoteProductModel(LocalProduct):
proxy = True
objects = RemoteProductManager
...
...
в admin.py
from .models import LocalProductModel
from .models import RemoteProductModel
from .models import LocalPurchaseModel
from .models import RemotePurchaseModel
from django.contrib import admin
class LocalProductInline(admin.StackedInline):
model = LocalProductModel
extra = 1
class RemoteProductInline(admin.StackedInline):
model = RemoteProductModel
extra = 1
class LocalPurchaseAdmin(admin.ModelAdmin):
list_display = ...
fields = ...
inlines = (LocalProductInline, )
class RemotePurchaseAdmin(admin.ModelAdmin):
list_display = ...
fields = ...
inlines = (RemoteProductInline, )
...
admin.site.register(LocalPurchaseModel, LocalPurchaseAdmin)
admin.site.register(RemotePurchaseModel, RemotePurchaseAdmin)
А также причиной этого варианта являются два разных набора полей длялокальные и удаленные продукты на стороне администратора.Конечно, все поля существуют в LocalProductModel.Есть какие-нибудь подсказки?Благодаря.