2016-05-25 10 views
0

Ich gebe eine Reihe von Tupeln mit dem folgenden Code zurück. Die zurückgegebenen Werte beziehen sich auf Daten von verschiedenen Modellen. Ich habe mich gefragt, wie man die Daten serialisiert und eventuell im JSON-Format zurückgibt.Wie kann ich die folgende Django-Ansicht konvertieren, um JSON mit Django Rest Framework zurückzugeben?

def Stream(request): 
    questions = Question.objects.all() 
    answers = Answer.objects.filter(hearts__gte=1) 
    combined = sorted(chain(questions, answers), key=attrgetter('created'), reverse=True) 
    queryset = [] 
    for item in combined: 
     if hasattr(item, 'parent'): 
      try: 
       qs_heart = AnswerHeart.objects.get(answer=item, user=request.user) 
       if qs_heart: 
        hearted = True 
      except AnswerHeart.DoesNotExist: 
       hearted = False 
      try: 
       qs_flag = AnswerFlag.objects.get(answer=item, user=request.user) 
       if qs_flag: 
        flagged = True 
      except AnswerFlag.DoesNotExist: 
       flagged = False 
      queryset.append((item, hearted, flagged)) 
     else: 
      try: 
       qs_heart = QuestionHeart.objects.get(question=item, user=request.user) 
       if qs_heart: 
        hearted = True 
      except QuestionHeart.DoesNotExist: 
       hearted = False 
      try: 
       qs_flag = QuestionFlag.objects.get(question=item, user=request.user) 
       if qs_flag: 
        flagged = True 
      except QuestionFlag.DoesNotExist: 
       flagged = False 
      queryset.append((item, hearted, flagged)) 
    comments = QuestionComment.objects.all() 
    return render(request, "alpha/stream.html", {'queryset': queryset, 'comments': comments}) 
+0

Bis jetzt habe ich 'Generics' immer für ein bestimmtes Modell verwendet und das hat gut funktioniert. Ich habe noch nichts in diesem Code versucht, soweit ich nicht weiß, wo oder wie ich anfangen soll. – MiniGunnR

Antwort

0

Können Sie nicht einfach so etwas tun?

class MyThingSerializer(serializers.Serializer): 
    my_thing_email = serializers.EmailField() 

def my_view(request): 
    serializer = MyThingSerializer(my_things, many=True) 

    return HttpResponse(JSONRenderer().render(serializer.data), content_type='application/json') 
Verwandte Themen