我需要一个Django网站,它有一个带iframe的主页。
有一个按钮,(点击时)将iframe中显示的网站从数据库(URLS数据库)中随机选择一个。
有没有办法用AJAX,jQuery或类似的东西做到这一点?问题是,不知何故,我需要执行一些从我的数据库中随机选择url的视图。 (禁止刷新或重定向,所以我只需要更改iframe)。
提前致谢。
答案 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,那就会失败:)