Django:在iframe上更新src而不刷新

时间:2013-12-22 23:40:06

标签: jquery python ajax django

我需要一个Django网站,它有一个带iframe的主页。

有一个按钮,(点击时)将iframe中显示的网站从数据库(URLS数据库)中随机选择一个。

有没有办法用AJAX,jQuery或类似的东西做到这一点?问题是,不知何故,我需要执行一些从我的数据库中随机选择url的视图。 (禁止刷新或重定向,所以我只需要更改iframe)。

提前致谢。

1 个答案:

答案 0 :(得分:1)

嗯,你必须向我们展示更多细节,查看,建模你已经拥有的一些HTML和JavaScript。但是,我会做一个简单的方法。

#models.py

Class Page(models.Model):
    url = models.URLField()

#views.py

def random_page_view(request):
    response_data = {}
    page = Page.objects.order_by('?')[0]
    response_data['page_url'] = page.url
    return HttpResponse(json.dumps(response_data), content_type="application/json")

#random_page.html

<!-- I guess you have something like -->
<iframe id='random-page' src='some url'></iframe>
<button id='new-page-button'>Click me!</button>

<script>
  $(function(){
    $('#new-page-button').on('click', function(event){
        $.get( "{% url 'get_random_url' %}", function( data ) {
           $( "#random-page" ).attr('src', data.page_url);
        });
    });
  })
</script>

注意:也许你不必使用order_by('?'),它很慢。 (见here

注2:如果您没有任何Page,那就会失败:)