2011-10-02 5 views
0

필자는 기능별로 필터 제품을 만들 필요가 있습니다. 그래서 제품 카탈로그 : 파라미터로 필터

, 제품 모델 :

class Product(models.Model): name = models.CharField(max_length=255, unique=True')

그리고 기능 모델 :

class Value(models.Model): value = models.CharField(max_length=50) class FeatureName(models.Model): name = models.CharField(max_length=50) class Feature(models.Model): name = models.ForeignKey(FeatureName) value = models.ForeignKey(Value) item = models.ForeignKey(Product)

내가 특성과 값의 모든 가능한 이름을 얻을 필요가 필터링의 템플릿 양식을 표시하려면 이 특성. 이처럼

:

색상 : 레드, 화이트, 블루 크기 : 1, 2, 3

나는 누군가가 나를 이해 바랍니다, 어떻게 기능을 실현하기 위해 영리 할 말해. 감사합니다 :) 특정 제품에 대한 모든 특징을 목록으로

답변

0

시작 :

product = Product.objects.get(pk=given_pk) 
features = product.feature_set.all().select_related() 

이제 그룹화 기능을 직접 파이썬한다.

features_dict = {} 
for feature in features: 
    values = features_dict.get(feature.name.name, []) 
    features_dict[feature.name.name] = values + [feature.value.value] 

이렇게하면 모든 이름을 기존 값으로 연결하는 것이 가능합니다.

+0

FYI : 코드가 머리 상단부터 나오며 테스트되지 않았거나 구문 분석되지 않았습니다. –

+0

그러나이 사전을 장고 템플릿에 어떻게 나열 할 수 있습니까? – user962963

+0

대단히 감사합니다. :) – user962963

관련 문제