Форум сайта python.su
Первый мини-проект на джанге. Хочу выстроить древовидную структуру в админке, примерно так:
Категория1–>
Товар1
Товар2
Категория2–>
Товар6
Сам файл модели models.py:
from django.db import models # Create your models here. import mptt from mptt.models import MPTTModel, TreeForeignKey class Folder(MPTTModel): name = models.CharField(max_length=50, unique=True, verbose_name=u'Name') parent = TreeForeignKey('self', null=True, blank=True, related_name='children', db_index=True) def __str__(self): return self.name class MPTTMeta: parent_attr = 'parent' class Product(models.Model): name = models.CharField(max_length=50, db_index=True, verbose_name=u'PName') price = models.CharField(max_length=8, db_index=True, verbose_name=u'Price') parent = models.ForeignKey(Folder, blank=True, null=True, related_name='child_product') def __str__(self): return self.name mptt.register(Folder) mptt.register(Product)
from django.contrib import admin from mptt.admin import MPTTModelAdmin from .models import Folder, Product admin.site.register(Folder, MPTTModelAdmin) admin.site.register(Product, MPTTModelAdmin)
Офлайн
а должны?
при построении дерева выводи продукты из нужного Фолдера
+ admin.site.register(Product, MPTTModelAdmin) лишнее, у текбя Product отнаследован от дефолтной модели джанги
в админке это делать нет смысла
ноо, если очень хочется то можешь создать 3ю модель (которую будешь использовать в дереве) с `GenericForeignKey` на модели Folder и Product
Отредактировано slav0nic (Фев. 9, 2016 10:58:39)
Офлайн
Да, верно
admin.site.register(Product, admin.ModelAdmin), до этого с ОРМ никогда не работал, сейчас уже начинаю немного понимать механизм.
Офлайн
А нет, вру, со sqlalchemy немного работал:
https://habrahabr.ru/post/128052/
Офлайн
если нужна sqlalchemy, то лучше сменить фреймворк ;)
моё имхо - любой джанго девелопер должен иметь представление о каком-то 2м микрофреймворке для этого случая (pyramid, flask etc)
Отредактировано slav0nic (Фев. 13, 2016 10:46:09)
Офлайн