У меня две модели заказов — удаленная и локальная. И в каждый из них мне нужно вставить продукты в каком-то неограниченном количестве. Другая цель — показать полный список товаров, заказанных локально и удаленно, в разных списках.
Решение второй цели: использование второй модели товара, унаследованной от первой, со своим собственным менеджером (объектами).< /p>
Решения для цели номер один: использовать встроенные строки в классах администрирования заказов для добавления точно нужного продукта в заказ (локальный продукт в локальный заказ и удаленный продукт в удаленный заказ).Добавление встроенного локального продукта в администратор локальной покупки работает отлично.
Но добавление встроенного удаленного продукта во встроенное поле административного файла удаленного заказа возвращает ошибку для класса администратора удаленного заказа:
Код: Выделить всё
must inherit from 'InlineModelAdmin'.
Некоторый код, подобный этому
в 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
...
...
Код: Выделить всё
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)
Есть подсказки?
Подробнее здесь: https://stackoverflow.com/questions/565 ... modeladmin