модель:
class Store(models.Model):
name = models.CharField(max_length = 20)
class Admin:
pass
def __unicode__(self):
return self.name
class Stock(Store):
products = models.ManyToManyField(Product)
class Admin:
pass
def __unicode__(self):
return self.name
class Product(models.Model):
name = models.CharField(max_length = 128, unique = True)
parent = models.ForeignKey('self', null = True, blank = True, related_name='children')
(...)
def __unicode__(self):
return self.name
mptt.register(Product, order_insertion_by = ['name'])
admin.py:
from bar.drinkstore.models import Store, Stock
from django.contrib import admin
admin.site.register(Store)
admin.site.register(Stock)
Теперь, когда я смотрю на сайте администратора, я могу выбрать любой продукт из списка.Но я бы хотел иметь ограниченный выбор - только уйти.В классе mptt есть функция:
is_leaf_node () - возвращает True, если экземпляр модели является листовым узлом (у него нет дочерних элементов), иначе False.
НоЯ понятия не имею, как его подключить
Я пытаюсь сделать подкласс: в admin.py:
from bar.drinkstore.models import Store, Stock
from django.contrib import admin
admin.site.register(Store)
class StockAdmin(admin.ModelAdmin):
def queryset(self, request):
return super(StockAdmin, self).queryset(request).filter(ihavenoideawhatfilter)
admin.site.register(Stock, StockAdmin)
, но я не уверен, что это правильный путь, и чтонабор фильтров.
UPD: Это совершенно неверный путь.набор запросов в классе StockAdmin создает список акций.Но мне нужно отфильтровать список товаров «на складе» - все равно не знаю как.