小编don*_*yor的帖子

django - 捕获多个异常

我有这个视图功能:

def forum(request):
qs = Forum.objects.all()
try:
    f = Forum.objects.filter().order_by('-id')[0] <------------problem
    return render_to_response("forum.html",{'qs':qs,'f':f},context_instance=RequestContext(request))
except Forum.DoesNotExist or IndexError:
    return render_to_response("forum.html",{'qs':qs},context_instance=RequestContext(request))
Run Code Online (Sandbox Code Playgroud)

但它仍然为上面的问题行提供以下错误:

IndexError: list index out of range
Run Code Online (Sandbox Code Playgroud)

我的代码好吗?我能以这种方式捕获多个例外吗?

python django exception

8
推荐指数
3
解决办法
5189
查看次数

django paginator - 如何显示所有可用的页码

我有一个简单的问题:

{{ objects.paginator.num_pages }}在模板中有这个,它给了我包含项目的页面总数.

现在我想显示这样的页码

1 | 2 | 3 | 4 | 5
Run Code Online (Sandbox Code Playgroud)

要做到这一点,我需要做到forloop直到the num_pages.喜欢for i to num_pages.

怎么可能在Django模板?我正在阅读一些片段,但对我来说有点难以理解.

python django pagination

8
推荐指数
2
解决办法
6858
查看次数

AssertionError - 没有提供异常 - django

我真的很困惑,不知道它对我有什么要求.

这是我的简单功能

def confirm_abo(request):
  try:
      abo = Abonnement.objects.get(id=int(request.GET.get('abocid')))
      abo.status = 1
      abo.save()
      link = "http://127.0.0.1:8000/delete_link/?abocid=" + str(abo.id)
      subject = "test subject"
      message = "test message" + link
      send_mail(subject, message, 'info@test.com', [abo.email], fail_silently=False)
      return render(request,'abo_confirm.html',{'abo':abo,'abo_success':'yes'})
  except: 
      return render(request,'abo_confirm.html',{'abo_success':''})#<-- problem
Run Code Online (Sandbox Code Playgroud)

我正在进入最后一行

AssertionError at /confirm_abo/ No exception supplied
Run Code Online (Sandbox Code Playgroud)

错误.

我在django1.4和python 2.7.它一直工作到现在没有任何问题..

我究竟做错了什么?

python django python-2.7

8
推荐指数
1
解决办法
6805
查看次数

python-requests - 正在覆盖user-agent

我有

    logindata = {
        'username': 'me',
        'password': 'blbla'
    }
    payload = {'from':'me', 'lang':'en', 'url':csv_url}
    headers = {
        'User-Agent': 'Mozilla/5.0'
    }
    api_url = 'http://dev.mypage.com/admin/app/import/'

    with requests.Session() as s:
        s.post(api_url, data=json.dumps(logindata), headers=headers)

        print s.headers

        # An authorised request.
        r = s.get(api_url, params=payload, headers=headers)
Run Code Online (Sandbox Code Playgroud)

我被拒绝但是因为403被禁止了.我打印了标题,我得到:

..'User-Agent': 'python-requests/2.2.1 CPython/2.7.5 Windows/7'..
Run Code Online (Sandbox Code Playgroud)

为什么我会'User-Agent': 'Mozilla/5.0'被覆盖?我在这里想念的是什么?

python python-requests

8
推荐指数
2
解决办法
8012
查看次数

注释“xy”与模型上的字段冲突 - django

我有模型:

class Topiccenter(models.Model):
  name = models.TextField()
  def sumentries(self):
    return self.tc_books.count() + self.tc_journals.count()

class Book(models.Model):
  name = models.TextField()
  tc = models.ForeignKey(Topiccenter,related_name="tc_books")

class Journal(models.Model):
  name = models.TextField()
  tc = models.ForeignKey(Topiccenter,related_name="tc_journals")
Run Code Online (Sandbox Code Playgroud)

我正在尝试做这样的事情:

Topiccenter.objects.annotate(tc_books=Sum('tc_books'),
                              journals=Sum('tc_journals')
                              ).extra(
                                   select={'sum_entries':'tc_books+journals'}, 
                                   order_by=('sum_entries',)
                              )
Run Code Online (Sandbox Code Playgroud)

但它是说:The annotation 'tc_books' conflicts with a field on the model.

python django django-models

7
推荐指数
1
解决办法
1万
查看次数

基于min函数的比较

min函数究竟是如何为python中的列表工作的?

例如,

 num = [1,2,3,4,[1,2,3]]
 num2 = [1,2,3,4,5]

 min(num,num2) 
Run Code Online (Sandbox Code Playgroud)

给出num2了结果.比较值是基于还是基于长度?

python python-2.7

7
推荐指数
1
解决办法
212
查看次数

自动隐藏引导工具提示

我想在几秒钟后自动隐藏Boostrap工具提示.

 <input type="text" title="" data-placement="bottom" style="width:200px" data-toggle="tooltip" autocomplete="off" data-provide="typeahead" class="form-control Waring" name="medicine_name" id="medicine_name" data-original-title="Please Enter Valid medicine name">
Run Code Online (Sandbox Code Playgroud)

html javascript twitter-bootstrap-tooltip twitter-bootstrap-3

7
推荐指数
2
解决办法
1万
查看次数

带有弹出窗口的chrome.browserAction.onClicked.addListener()

我想在每次点击浏览器图标时将Listener添加到触发的事件中.我还有一个弹出窗口,单击此图标即可出现.

我试过chrome.browserAction.onClicked.addListener()但没有把它解雇,后来我看到医生说:

Fired when a browser action icon is clicked. 
This event will not fire if the browser action has a popup. 
Run Code Online (Sandbox Code Playgroud)

所以,我有弹出窗口,所以这个监听器不起作用.在我的案例中,我可以采用哪种解决方法将Listener附加到图标?

javascript google-chrome google-chrome-extension

7
推荐指数
1
解决办法
3238
查看次数

如何将H2主键id设置为auto_increment?

我正在使用sql,H2,我正在努力使Usertable的ID为auto_incremented.我尝试在H2 sql界面中的所有sql命令,没有工作.

alter table user alter column int not null auto_increment;
Run Code Online (Sandbox Code Playgroud)

这个常见的甚至不起作用.是否有任何JPA for auto_incement的注释可能?

非常感谢

sql auto-increment jpa-2.0 playframework-2.0

6
推荐指数
2
解决办法
3万
查看次数

如何在django ajax update中返回json字典

我多次问这个问题,因为我没有收到任何适用的帮助.

我的问题是,我不知道如何将查询结果作为ajax响应返回到模板.

我这样做了:

if request.path == "/sort/":
    sortid = request.POST.get('sortid')
    locs = Location.objects.order_by(sortid)
    if request.is_ajax():
        return HttpResponse(locs,mimetype="application/json")
Run Code Online (Sandbox Code Playgroud)

然后我的ajax done函数执行此操作:

}).done(function(data){
$('.sortierennach').html(data);
});
Run Code Online (Sandbox Code Playgroud)

现在发生的是它只是替换了内容.sortierennach,它不会渲染django dic,所以我可以这样做:

{% for loc in locs %}
  {{loc.name}}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

有人可以帮助我...非常感谢

javascript python django ajax json

6
推荐指数
1
解决办法
5488
查看次数