2017-12-30 11 views
0

내 Django 앱의 각 그룹 사용자를 표시하고 싶습니다.Django, 그룹 사용자가

{% for group in groups %} 
    <h2>{{ group }}</h2> 
    {% for user in group.user_set.all %} 
     <div> 
      {{ user }} 
     </div> 
    {% endfor %} 
{% endfor %} 

이 잘 작동하지만,이 특정 템플릿, 나는 사용자가 자신의 date_joined 속성으로 정렬하고 싶습니다.

어떻게하면됩니까? 나는 그것이 사용자 정의 필터를 사용하여 수행 할 수 있다고 생각하지만 그것이 올바른 방법인지 또는 더 좋은 필터인지 확실하지 않습니다.

답변

1

당신은 시리얼

serializer.py

from rest_framework import serializers 
    class UserSerializerserializers.ModelSerializer): 
     class Meta: 
      model = User 
      fields = ('username') 
      order_by = ('date_joined') 

    class GroupSerializer(serializers.ModelSerializer): 
     users = UserSerializerserializers(many=True) 
     class Meta: 
      model = Group 
      fields = ('name', 'users') 


    > groups = Group.objects.all() 
    > required_result = GroupSerializer(groups,many=True) 
    > required_result.data # will give you a json 
0

나는 사용자 정의 필터를 사용하여 해결 끝났다을 시도 할 수 있습니다.

@register.filter_function 
def order_by(queryset, args): 
    args = [x.strip() for x in args.split(',')] 
    return queryset.order_by(*args) 

그런 다음 템플릿에서 필자는 그 필터를 사용하고 매력처럼 작동합니다.

{% for group in groups %} 
    <h2>{{ group }}</h2> 
    {% for user in group.user_set.all|order_by:"date_joined" %} 
     <div> 
      {{ user }} 
     </div> 
    {% endfor %} 
{% endfor %}