Django 管理员,自定义视图错误:int() 以 10 为底的无效文字

Posted

技术标签:

【中文标题】Django 管理员,自定义视图错误:int() 以 10 为底的无效文字【英文标题】:Django admin, custom view error : invalid literal for int() with base 10 【发布时间】:2010-11-25 18:38:43 【问题描述】:

我正在尝试在 Django 管理中创建自定义视图。我正在阅读这个网站,Simple Django Admin Preview,但我有一个问题:

ValueError: invalid literal for int() with base 10: '13/preview'

这是我的 url.py:

url(r'^admin/diligencias/diligencia/(?P<object_id>\d+)/preview/$','preview'),

这是我的view.py:

@staff_member_required
def preview(request, object_id):
   return object_detail(request, object_id=object_id,queryset=Diligencia.objects.all(), template_object_name = 'diligencia', )

这个错误是什么意思?

【问题讨论】:

【参考方案1】:

加布里埃尔所说的不正确。我的猜测是问题在于您的视图是 URLConf 中的其他管理视图之后,因此这个 URL 被 Django amdin 使用“13/preview”的一个包罗万象的 URL 捕获可能是一个有效的 PK ,因此您应该将此 URL 移到其他管理员的上方。

【讨论】:

【参考方案2】:

该请求没有被那个 URLconf 接收,而是被默认的管理视图接收,它期望 app/model 之后的所有内容都是主键的整数值。

您可能需要在 URL 列表中将您的 URL 移到更高的位置,以便它位于包含管理员 URL 的那个之前。

【讨论】:

谢谢丹尼尔,现在我有一个新错误:回溯(最近一次调用最后一次):文件“/home/iosira05/webapps/django/lib/python2.5/django/core/handlers/ base.py",第 92 行,在 get_response response = callback(request, *callback_args, **callback_kwargs) TypeError: 'str' object is not callable【参考方案3】:

def importnum():
    n1 = int(raw_input ("enter 1st number?"))
    n2 = int(raw_input ("enter 1st number?"))
    return n1+n2

def main():
    n3=importnum()
    print n3*1/2
&lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"&gt;&lt;/script&gt;

【讨论】:

以上是关于Django 管理员,自定义视图错误:int() 以 10 为底的无效文字的主要内容,如果未能解决你的问题,请参考以下文章

管理员中的 Django 自定义列表视图

python Django:向管理员更改列表视图添加自定义按钮

Django 管理站点 change_list 视图自定义

如何使用自定义 django 404 错误视图重定向?

Django 管理员在模型保存期间返回自定义错误消息

Django 自定义登录视图 -> 会话不持久