Итерировать в django просмотров - PullRequest
0 голосов

У меня проблема с итерацией по всему списку в django файле views.py

from django.shortcuts import render, redirect, HttpResponse
from django.views.decorators.http import condition
import time
import roundrobin


STATES = [
    "hello",
    "world"
]

get_roundrobin = roundrobin.basic(STATES)

def test(request):
    for i in get_roundrobin():
        return HttpResponse(i)

Django отвечает мне только на первый символ каждого элемента списка STATES, я имею в виду django верните «h», затем «w» вместо «hello», затем «world», как это исправить?

Upd: Кстати внутри библиотеки roundrobin там следующий код:

from itertools import cycle


def basic(dataset):
    iterator = cycle(dataset)

    def get_next():
        a = next(iterator)
        print(a)
        return a

    return get_next

Все правильно, отвечает типа «привет», затем «мир».

1 Ответ

1 голос
/ 17 июня 2020

Поскольку get_roundrobin возвращает строку, а затем вы просматриваете список, который возвращает только первый символ за раз, попробуйте это

from django.shortcuts import render, redirect, HttpResponse
from django.views.decorators.http import condition
import time
import roundrobin


STATES = [
    "hello",
    "world"
]

get_roundrobin = roundrobin.basic(STATES)

def test(request):
    return HttpResponse(get_roundrobin())

Теперь тест вернет 'hello' затем 'world' затем 'hello' и так далее ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...