Python django中的类别和子类别
我有一个实体的产品,类别和子类别。一个类别可以有许多产品,一个类别也可以有许多子类别。例如,一款名为Iphone-4的产品可能属于电子和小工具类别的智能手机子类别。类似的三星产品可以归入同一智能手机子类别的电子和小工具类别。我怎样才能有效地展示这种关系 这就是我所做的Python django中的类别和子类别,python,django,django-models,django-admin,Python,Django,Django Models,Django Admin,我有一个实体的产品,类别和子类别。一个类别可以有许多产品,一个类别也可以有许多子类别。例如,一款名为Iphone-4的产品可能属于电子和小工具类别的智能手机子类别。类似的三星产品可以归入同一智能手机子类别的电子和小工具类别。我怎样才能有效地展示这种关系 这就是我所做的 class Category(models.Model): name = models.CharField(max_length=80, null=True) parent = models.ForeignKey(
class Category(models.Model):
name = models.CharField(max_length=80, null=True)
parent = models.ForeignKey('self', blank=True, null=True, related_name="children")
class Meta:
unique_together = ('parent',)
verbose_name = 'Category'
verbose_name_plural = 'Categories'
class Product(models.Model):
token = models.CharField(default=token_generator, max_length=20, unique=True, editable=False)
category = models.ForeignKey(Category)
company = models.ForeignKey(Company, related_name="company_product")
name = models.CharField(max_length=200, null=True)
model = models.CharField(max_length=100, blank=True, null=True)
specification = models.TextField(null=True, blank=True)
price = models.PositiveIntegerField(default=0)
管理员
class ProductAdmin(admin.ModelAdmin):
list_select_related = ('category', 'company',)
class Meta:
model = Product
class CategoryAdmin(admin.ModelAdmin):
list_select_related = ('parent',)
list_display = ('name', 'parent', )
class Meta:
model = Category
这样,在我的管理中,类别和子类别显示得非常模糊。类别电子产品和小工具显示多次。根据属于该类别的子类别的数量显示。
这是预期的行为还是必须以其他有效方式处理
您必须在第一列中列出级别为-1的类别,然后在第二列中列出以逗号分隔的子类别。您也可以在第二列中只显示一个子类别,然后创建一个链接以显示所有子类别及其子类别,依此类推。我必须在admin.py中执行这些操作吗?你能给我看一些小东西或伪代码吗?我对python知之甚少。您必须在级别-1对所有类别进行分页,然后使用子查询获取所有子类别。