2016-01-16 2 views
0

Это view.py, которые извлекают 6 URL-адресов изображений из instagram. Во-первых, все в порядке, но как я могу изменить показанные 6 изображений в файле home.html (который извлекает 6 новых изображений), когда я нажимаю следующую кнопку?Как я могу изменить этот div с той же кнопкой search_key, когда я нажимаю следующую кнопку?

def home(request): 
    trends = [] 
    if request.method == 'POST': 
     if request.POST.get('q'): 
      search_key = request.POST.get('q').replace(" ","") 
      getImageFromInstagram(search_key) 
     else: 
      search_key = '' 
     veriler = hashTags.objects.values_list('hashTag',flat=True) 
     line = hashTags(hashTag=search_key,trends=search_key,image_url=tagUrl) 
     line.save() 
     return render(request, "home.html", {'trends':trends,'urls':urls,'hashtags':veriler}) 

def getImageFromInstagram(): 
    tagUrl = 'https://api.instagram.com/v1/tags/'+ search_key +'/media/recent?client_id=Hidden for security' 
    q = requests.get(tagUrl).json() 
    urls = [ q['data'][i]['images']['standard_resolution']['url'] for i in range(6)] 
    return urls 

конец home.html

<div class="col-md-8 timeline"> 
    {%for image_url in urls%} 
     <img src="{{image_url}}"> 
    {% endfor%} 
</div> 
<button type="submit" name="submit" class="btn btn-primary btn-lg btn-block">Next</button> 
+0

вы хотите получить еще 6 изображений из instagramm, когда вы нажимаете 'next'? – doniyor

+0

Да, точно. Когда я нажимаю дальше, класс div должен меняться с новыми изображениями – Yasin

+0

@doniyor Можете ли вы помочь в этом? – Yasin

ответ

0

ваша форма

<form action="{% url 'home' %}?next_url={{ next_url }}"> 
    <div class="col-md-8 timeline"> 
    <input name="q" type="text"> 
    {%for image_url in urls %} 
     <img src="{{image_url}}"> 
    {% endfor%} 
    </div> 
    <button type="submit" class="btn btn-primary btn-lg btn-block">Next</button> 
</form> 

ваш views.py

def home(request): 
    trends = [] 
    if request.method == 'GET': 
     q = request.GET.get('q', '').replace(" ","") 
     next_url = request.GET.get('next_url', None) 
     urls, next_url = getImageFromInstagram(q=q, next_url=next_url) 
     # .. your other code 
     return render(request, "home.html", { 
      'trends': trends, 
      'urls': urls, 
      'next_url': next_url, 
     }) 

def getImageFromInstagram(q="", next_url=None): 
    if next_url is not None: 
     res = requests.get(next_url).json() 
     urls = [ res['data'][i]['images']['standard_resolution']['url'] for i in range(6)]     
    else:  
     tagUrl = 'https://api.instagram.com/v1/tags/'+ q+'/media/recent?client_id=Hidden for security' 
     res = requests.get(tagUrl).json() 
     urls = [ res['data'][i]['images']['standard_resolution']['url'] for i in range(6)] 

    next_url = res['pagination']['next_url'] 
    return urls, next_url 

но я didnot проверить его.

+0

, он дал ошибку, как thisJSONDecodeError: Ожидающее значение: строка 1 столбец 1 (char 0) из-за urls, next_url = getImageFromInstagram (q = q, next_url = next_url). – Yasin

+0

Возможно ли, что создание этого материала с помощью django paginator? – Yasin

Смежные вопросы