2

我现在使用的模型基本上有三个类。一个根类、一个附加到根类的树和一个可以附加到树中任何位置的叶节点类。

例如商店/类别/产品或商店/类别/类别/产品

产品只能链接到类别。类别可以链接到另一个类别或商店。

我会使用通用外键将类别链接到商店或其他类别,但由于类别是一棵树,它需要一个 TreeForeignKey 字段。我正在寻找如何在 models.py 中完成此操作的示例或实现相同目标的替代方法。

4

1 回答 1

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)
于 2011-04-15T06:29:47.073 回答