2016-07-01 16 views
0

のlimit_choices_toで別の外部キーを使用して、しかし、私は私がWarehouseStockからproduct_type.product_typeを使用したい私はlimit_choices_toで外部キーを使用する外部キー

Cannot resolve keyword u'product_type.product_type' into field. Choices are: id, pantvariation, product_brand, product_brand_id, product_id, product_type, product_type_id, shirtvariation

class ProductType(models.Model): 
    product_type = models.CharField(max_length=70, choices=choices.PRODUCT_TYPES) 
    variation_model_name = models.CharField(max_length=70,blank=True, null=True) 

    def save(self, *args, **kwargs): 
     temp = ProductType() 
     temp.product_type = self.product_type 
     temp.variation_model_name = self.product_type.capitalize() + "Variation" 
     super(ProductType, temp).save(*args, **kwargs) 

    def __unicode__(self): 
     return self.product_type 


class WarehouseStock(models.Model): 
    product_id = models.CharField(max_length=120, unique=True) 
    product_type = models.ForeignKey(ProductType) 
    product_brand = models.ForeignKey(Brand) 

    def __unicode__(self): 
    return self.product_id 
class PantVariation(models.Model): 
    product = models.ForeignKey(WarehouseStock, limit_choices_to= {'product_type.product_type': 'pant'}) 
    size = models.CharField(max_length=3, choices= choices.PANT_SIZES) 
    colour = models.CharField(max_length=10) 
    fit = models.CharField(max_length=10, choices=choices.FIT_TYPES) 

のエラーを取得していますlimit_choices_to、どうすればいいですか?

編集:フルエラー:

FieldError at /admin/warehouse/pantvariation/add/ Cannot resolve keyword u'product_type.product_type' into field. Choices are: id, pantvariation, product_brand, product_brand_id, product_id, product_type, product_type_id, shirtvariation

Request Method: GET

Request URL: http://127.0.0.1:8000/admin/warehouse/pantvariation/add/

Django Version: 1.9.7

Exception Type: FieldError

Exception Value: Cannot resolve keyword u'product_type.product_type' into field. Choices are: id, pantvariation, product_brand, product_brand_id, product_id, product_type, product_type_id, shirtvariation

+0

このエラーが発生した場所でクエリと行を指定できますか? – hemraj

+0

エラーの詳細を追加しました。 – Osiris92

答えて

0

あなたは簡単にそのようにこの作業を行うことができません私見。しかし、私はこの方法であなたのPantVariationモデルを再構築します:動作する必要があることを

class PantVariation(models.Model): 
    product = models.ForeignKey(ProductType, related_name="pants", limit_choices_to= {'product_type.': 'pant'} 

。また、ProductTypeモデルを使用してWarehouseStockモデルにアクセスすることもできます。これはあなたが望むことをしますか?

+0

いいえ、残念ながらそれはありません、私はWarehouseStockになるためにforiegnkeyが欲しいので、私はズボンである製品しか見ることができません。 foriegnキーをProductTypeにすると、product_typeとpantタイプのproduct_idとの間で選択できます。 – Osiris92

+0

あなたはこの答えを見ることができます: http://stackoverflow.com/questions/232435/how-do--restrict-foreign-keys-choices-to-related-objects-only-in-django? –