我目前使用的模型基本上有三个类。根类,附加到根类的树和可以附加到树中任何位置的叶节点类。
e.g。商店/类别/产品或商店/类别/类别/产品
产品只能与类别相关联。 类别可以链接到另一个类别或商店。
我会使用通用外键将类别链接到商店或其他类别,但由于Category是树,它需要TreeForeignKey字段。我正在寻找在models.py中如何实现这一目标的示例,或者是实现相同目标的另一种方法。
答案 0 :(得分:0)
您不需要GenericForeignKey。
正常实施您的mptt fk并使用它来设置类别树并添加一个可选的商店FK字段以链接到商店。
from django.db import models
from mptt.models import MPTTModel, TreeForeignKey
class Shop(models.Model):
name = models.CharField(max_length=50)
class Category(MPTTModel):
name = models.CharField(max_length=50, unique=True)
parent = TreeForeignKey('self', null=True, blank=True, related_name='children')
shop = ForeignKey(Shop, null=True, blank=True)
class Products(models.Model):
name = models.CharField(max_length=50)
category = models.ForeignKey(Category)