Как я могу вернуть новый неповторяющийся элемент из списка в Django, отслеживая предыдущие элементы?

Вы можете попытаться использовать гиперссылку в качестве родителя, а затем изменить внутренние элементы при наведении. Например:

a.active h1 {color:red;}

a.active:hover h1 {color:green;}

a.active h2 {color:blue;}

a.active:hover h1 {color:yellow;}

Таким образом вы можете изменить стиль во множестве внутренних тегов на основе опрокидывания родительского элемента.

1
задан halfer 30 March 2019 в 12:25
поделиться

1 ответ

Ваша проблема в том, что ваша переменная не передается от одного запроса к следующему. Лучший способ сделать это - использовать request.session = ... для установки переменной, а затем проверить ее позже и выполнить действия. Вот пример, который вы можете расширить, чтобы сделать его по своему вкусу:

import random
from django.shortcuts import redirect

class TestView(View):
    def get(self, request, *args, **kwargs):

        gallery = request.session.get('gallery', None)
        if (type(gallery) is list) and (len(gallery) == 0):  # When list is empty, clear session & then redirect
            del request.session['gallery']
            request.session.modified = True
            return redirect('<your_redirect_url>')
        if gallery is None:  # If first visit to page, create gallery list
            gallery = list(models.Photos.objects.all().values_list("partof__category", flat=True))

        # select random photo from list
        last = len(gallery) -1
        randomInt = random.randint(0, last)
        randomPic = gallery[randomInt]
        gallery.remove(randomPic)

        request.session['gallery'] = gallery

        return render(request, 'test.html', {})
0
ответ дан Hybrid 30 March 2019 в 12:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: