2017-10-12 17 views
0

私は、クロスセリング製品を作成する:属性を持つ自己へのM2Mの関係。

class Product(models.Model): 
    name = models.CharField(max_length=150, blank=True, default='') 
    ... 

class CrossSellingProduct(models.Model) 
    parent_product = models.ForeignKey(Product, related_name='cross_sellings') 
    associate_product = models.ForeingKey(Product) 
    double_sided = models.BooleanField(default=1) 

私は、製品のインスタンスに機能cross_selling_productsを呼び出し、関連付けられているすべての製品を見てみたいです。 double_sidedTrueの場合、Falseのみparent - >associated_productsの場合、関連する製品を口元で見ることができます。

これを実装するにはスマートな方法がありますか?ありがとうございました。

答えて

0

基本的に、モデルの製品からManyToMany-relationを実装したいのですか?あなたは

class Product(models.Model): 
    name = models.CharField(max_length=150, blank=True, default='') 
    cross_selling_products = models.ManyToManyField("self") 
    ... 

で次にあなたがProductのインスタンスにcross_selling_productsにアクセスできることを行うことができます。