ねえ、私はすべてのオブジェクトの1つの属性を1つのクエリーセット内で処理したいのですが、その後はJSON形式を返すのですか?そのやり方は?Djangoクエリーセットを処理するには?
たとえば、ユーザー名フィールドの後ろに「*」を手動で追加してから、JSON形式で戻したいとしますか?またはquerysetタイプのままにしますか?
ねえ、私はすべてのオブジェクトの1つの属性を1つのクエリーセット内で処理したいのですが、その後はJSON形式を返すのですか?そのやり方は?Djangoクエリーセットを処理するには?
たとえば、ユーザー名フィールドの後ろに「*」を手動で追加してから、JSON形式で戻したいとしますか?またはquerysetタイプのままにしますか?
クエリセットをループすることができ、各要素は、単一のオブジェクトなので、何かのように:
starnames = [ n.username+"*" for n in results]
Djangoのシェルでそれで遊びます。
JSON形式ですか?ああ、誰かがそれをすることができます!
class ProcessQuerySet(object):
"""
A control that allow to add extra attributes for each object inside queryset.
"""
def process_queryset(self, queryset):
""" queryset is a QuerySet or iterable object. """
return map(self.extra, queryset) # Using map instead list you can save memory.
def extra(self, obj):
""" Hook method to add extra attributes to each object inside queryset. """
current_user = self.request.user # You can use `self` to access current view object
obj.username += '*'
return obj
用途:JSONレスポンスについて
class YourView(ProcessQuerySet, AnyDjangoGenericView):
def get_queryset(self):
queryset = SomeModel.objects.all()
return self.process_queryset(queryset)
'json.dumps(starnames)は'それを行います。 –