Django (admin.e104) должен наследовать от InlineModelAdmin.Python

Программы на Python
Anonymous
Django (admin.e104) должен наследовать от InlineModelAdmin.

Сообщение Anonymous »

Попытка поместить какую-то модель в качестве встроенной в две другие модели выдает какую-то странную ошибку (в заголовке).
У меня две модели заказов — удаленная и локальная. И в каждый из них мне нужно вставить продукты в каком-то неограниченном количестве. Другая цель — показать полный список товаров, заказанных локально и удаленно, в разных списках.
Решение второй цели: использование второй модели товара, унаследованной от первой, со своим собственным менеджером (объектами).< /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
...

...
в 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.
Есть подсказки?


Подробнее здесь: https://stackoverflow.com/questions/565 ... modeladmin

Вернуться в «Python»