Как сделать цикл в views.py в django - PullRequest
0 голосов
/ 11 июля 2019

Я не хочу повторять функцию Destination снова и снова в отдельных переменных.Я пытался создать разные переменные и сравнил их с Destination(), но это не сработало.Как сделать в нем петлю, чтобы мне не пришлось ее повторять?

def index(request):
    dest1 = Destination()
    dest1.desc = 'Hello, How are you?'
    dest1.img = '01.jpg'

    dest2 = Destination()
    dest2.desc = 'Hello, HOw are you?'
    dest2.img = '02.jpg'

    dests1 = [dest1, dest2] # that was missing.

    context = {
       'dests1': dests1,
       'dests2': dests2,
}

return render(request, 'index.html',context)

Ответы [ 2 ]

2 голосов
/ 11 июля 2019

внутри вашей функции index index (request) сделайте цикл до того, сколько раз вам понадобился объект Destination () и сохраните данные в списке, из этого списка вы можете получить данные позже. Вы также можете сделать список изображений, описания вещей проще

numberOfDestinationNeeded = 4 # change this number according to your need
destList = []
for i in range(numberOfDestinationNeeded):
    destObj = Destination()
    destObj.desc = "dfsfs"
    destObj.img = '02.jpg'
    destList.append(destObj)
0 голосов
/ 11 июля 2019

Вы можете сделать что-то вроде этого.

no_of_destinations = 4 #Some number.
context = {}
for index in range(1, no_of_destinations+1):
    dest = Destination()
    dest.desc = 'How are you?'
    dest.img = '0{}.jpg'.format(index)
    context['dest{}'.format(index)] = dest

return render(request, 'index.html',context)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...