Django REST Framework'u kullanarak aşağıdaki Serileştiriciye sahibim. Bu defa ne varRest Framework Serializer Yöntemi
...
serializer.py
class ProductSerializer(serializers.ModelSerializer):
score = serializers.SerializerMethodField('get_this_score')
class Meta:
model = Product
fields = ('id', 'title', 'active', 'score')
def get_this_score(self, obj):
profile = Profile.objects.get(pk=19)
score = [val for val in obj.attribute_answers.all() if val in profile.attribute_answers.all()]
return (len(score))
bu pasajı ile birkaç sorun vardır urls.py
url(r'^products/(?P<profile_id>.+)/$', ProductListScore.as_view(), name='product-list-score'),
kodun
1) Pram pk = 19, kodlanmış olması gerekir self.kwargs['profile_id'].
Denedim ve denedim, ancak kwarg yöntemine nasıl geçeceğini bilmiyorum ve profile_id çalışmasını alamıyorum. yani, onu url'den alamıyorum.
2) Bu kodlardan herhangi biri modellerde mi olmalı? Modellere eklemeyi denedim, ancak yine de bu hataları geçebilir.
models.py yani yöntem sınıfı böyle bir şey yaparak PROFILE_ID alabilmesi için
def get_score(self, profile):
score = [val for val in self.attribute_answers.all() if val in
profile.attribute_answers.all()]
return len(score)
Modellere sahip olma fikrini beğeniyorum. ama SerializerMethodField kullanarak source = bana paristen geçmeme izin vermiyor. SerializerMethodField kullanarak ve istek kodları artı nesnesi bir model yöntemine geçirerek bana bir örnek verebilir misiniz? Bu gerçekten anlamama yardımcı olur. Teşekkürler. – jason
@jason –
'un sorusuna katılıyorum' Ancak bu durumda 'obj' 'profil örneğine' 'herhangi bir durumda' 'olarak ayarlamanız gerektiğini düşünmüyorum' Ürün 'örneğini mi kastediyorsunuz? – Pynchia