当前位置: 首页 > 知识库问答 >
问题:

Django 通知对基数为 10 的 int() 无效文字

连鸿
2023-03-14

我正在使用django通知创建通知。根据我的文件:

url(r'^inbox/notifications/', include(notifications.urls, namespace='notifications')),

在我的< code>urls.py中。我通过在我的视图中使用它来生成测试通知。py:

guy = User.objects.get(username = 'SirSaleh')
notify.send(sender=User, recipient=guy, verb='you visted the site!')

我可以轻松获取此url中的未读通知数量:

http://127.0.0.1:8000/inbox/notifications/api/unread_count/

它返回{“unread_count”:1},如我所愿。但是使用/api/unread_list/我无法获取通知列表,我收到此错误:

ValueError at /inbox/notifications/
invalid literal for int() with base 10: '<property object at 0x7fe1b56b6e08>'

作为我使用django通知的初学者,任何帮助将不胜感激。

完全回溯

环境:

请求方法:GET请求URL:http://127.0.0.1:8000/inbox/notifications/api/unread_list/

Django 版本: 2.0.2 Python 版本: 3.5.2 已安装的应用程序: [“django.contrib.resource”, “django.contrib.contrib.sessions”,“django.contrib.消息”, “django.contrib.sites”, “django.contrib.sites”, “django.forms”, “rest_framework”,“所有授权”,“所有帐户”,“所有授权帐户”,“所有帐户”,“所有帐户”,“所有帐户”,“监护人”,“斧头”,“django_otp”,“django_otp插件.otp_静态”,“django_otp插件.otp_totp”,“two_factor”,“邀请”,”头像,“imagekit”,“import_export”,“djmoney”,“验证码”,“达尔”,“dal_select2”,“widget_tweaks”,“大括号”,“django_tables2”,“phonenumber_field”,“命中计数”,“el_pagination”,“maintenance_mode”,“通知”,“数学过滤器”,“myproject_web”,“订单”,“照片画廊”,“搜索”,“社交”,“用户帐户”,“用户身份验证”,“用户授权”,“用户配置文件”]已安装中间件:[“django.中间件.security.security.Security”,“django.contribs.middleware.会话中间件”, “django.中间件.locale.localeMiddleware”, “django.中间件.常见.通用中间件”, “django.middleware.csrf.CsrfViewMiddleware”, “django.contrib.auth.中间件.身份验证中间件”, “django.contrib.messages.中间件.消息中间件”, “django.中间件.点击劫持.XFrame操作系统”, “django_otp.中间件.OTPMIDDLEWARE”, “maintenance_mode.中间件.维护调制解调器”。

追溯:

文件“/首页/saleh/项目/myproject_web/库/python3.5/site-packages/django/核心/处理程序/异常.py”在内部35中。响应 = get_response(请求)

文件“/home/Saleh/Projects/my project _ web/lib/python 3.5/site-packages/django/core/handlers/base . py”in _ get _ response 128。response = self . process _ exception _ by _ middleware(e,请求)

文件“/home/Saleh/Projects/my project _ web/lib/python 3.5/site-packages/django/core/handlers/base . py”in _ get _ response 126。response = wrapped _ callback(request,*callback_args,**callback_kwargs)

文件"/home/saleh/Projects/myproject_web/lib/python3.5/site-包/通知/views.py"在live_unread_notification_list164.如果n.actor:

文件“/主页/saleh/项目/myproject_web/lib/python3.5/站点包/django/contrib/内容类型/字段.py”在获取 253 中。rel_obj = ct.get_object_for_this_type(pk= pk_val)

文件“/家/萨利赫/项目/myproject_web/库/python3.5/站点包/django/贡献/内容类型/模型.py”get_object_for_this_type 169。返回 self.model_class()._base_manager.using(self._state.db).

get 394中的文件“/home/Saleh/Projects/my project _ web/lib/python 3.5/site-packages/django/db/models/query . py”。clone = self.filter(*args,**kwargs)

过滤器 836 中的文件“/家/萨利/项目/myproject_web/库/python3.5/站点包/django/db/模型/查询.py”。返回self._filter_or_exclude(假, *参数, **夸格斯)

文件“/home/saleh/Projects/myproject_web/lib/python3.5/site-packages/django/db/models/query.py”位于_filter_or_exclude 854.clone.query中。add_q(q(*args,**kwargs))

add_q 1253.子句中的文件“/home/saleh/Projects/myproject_web/lib/python3.5/site-packages/django/db/models/sql/query.py”,_=self_add_q(q_object,self.used_alias)

文件“/home/Saleh/Projects/my project _ web/lib/python 3.5/site-packages/django/db/models/SQL/query . py”in _ add _ q 1277。split_subq=split_subq,

build_filter 1215.condition=self中的文件“/home/saleh/Projects/myproject_web/lib/python3.5/site-packages/django/db/models/sql/query.py”。build-lookup(查找、列、值)

build_lookup 1085中的文件“/home/Saleh/Projects/my project _ web/lib/python 3.5/site-packages/django/db/models/SQL/query . py”。lookup = lookup_class(左侧,右侧)

init 18中的文件“/home/Saleh/Projects/my project _ web/lib/python 3.5/site-packages/django/db/models/lookups . py”。self.rhs = self.get_prep_lookup()

文件“/家/萨利赫/项目/myproject_web/库/python3.5/站点包/django/db/模型/查找.py”get_prep_lookup 68。返回self.lhs.output_field

get_prep_value 947中的文件“/home/Saleh/Projects/my project _ web/lib/python 3.5/site-packages/django/db/models/fields/init . py”。返回int(值)

异常类型:ValueError位于/inbox/notifications/api/unread_list/Exception Value:基数为10的int()的无效文本:“”

共有3个答案

澹台啸
2023-03-14

这已经很老了,但我碰巧知道答案。

在代码中,您写道:

guy = User.objects.get(username = 'SirSaleh')
notify.send(sender=User, recipient=guy, verb='you visted the site!')

你表示你希望家伙成为你的发送但是,在 notify.send 中,您将发送者标记为通用用户对象,而不是伙计

因此,将您的代码更改为:

guy = User.objects.get(username = 'SirSaleh')
notify.send(sender=guy, recipient=guy, verb='you visted the site!')

通知将获取用户对象推断ID并将其相应地存储在数据库中。

何嘉运
2023-03-14

哎呀!这是我的错误。我终于找出了问题所在。actor_object_id是notifications_notification表的字段,用户.objects.get(用户名 = “SirSaleh”)保存在其中。它应该是英格演员的user_id)。

所以我删除了前面的表,将实例改为< code > User . objects . get(username = ' sir Saleh ')用户ID。问题解决了。

那么,为什么actor_object_id类型是查菲尔德(瓦尔查尔)?(至少我不知道);))

鄢修德
2023-03-14

actor_object_id需要是CharField才能支持基于UUID主键。

 类似资料:
  • Django总是在向服务器发送的每个POST请求上抛出<code>ValueError</code>。从浏览表单和SE来看,这似乎是我的Django模型的一个问题。但是,我不确定为什么模型会抛出这个错误,或者为什么Django会调用它们,因为这是在POST事件中抛出的。 有问题的视图: 我的应用程序模型: 追溯: 任何帮助或想法都将不胜感激,这真的让我摸不着头脑。

  • 给定一个有符号的32位整数x,返回其数字颠倒的x。如果反转x导致值超出有符号32位整数范围[-2**31, 2**31 - 1],则返回0。 假设环境不允许存储64位整数(有符号或无符号)。 这是我的意见书 int()方法应该允许我传递一个字符串值(“12”),但是它返回一个错误,说它是int()的无效文本。 第3行中的变量sp是str而不是float,所以我不知道为什么它不在leetcode提交

  • 问题内容: 我正在创建一个读取文件的程序,如果文件的第一行不为空白,它将读取接下来的四行。在这些行上执行计算,然后读取下一行。如果该行不为空,则继续。但是,我收到此错误: 它正在读取第一行,但无法将其转换为整数。 我该怎么做才能解决此问题? 代码: 问题答案: 仅作记录: 我在这里…

  • 我在一个EC2实例上测试了一个python脚本,它在服务器上工作得非常好,但是当我试图从Jenkins工作中传递相同的参数时,如下所示。我得到错误消息: 安全组在vpc VPC-D79691B9中创建了sg-ca09bcae。Traceback(最近的调用为last):文件“./create_sg.py”,第32行,在'fromport':int(From_port_1.stripe("“))中,

  • 问题内容: 每次尝试编码时,它都有效,但是当我键入代码时,出现错误: ValueError:int()以10为基的无效文字:“停止” 问题答案: 传递给的字符串应仅包含数字: 一个快速的解决方法是在此处使用异常处理: 而且您可以使用匹配“ stop”的任何大小写组合:

  • 问题内容: 我编写了一个程序来求解,然后将其投影在图形上。问题是,每当出现错误时: ValueError:int()以10为底的无效文字。 有什么建议? 这是回溯: 每当我输入一个小于1但大于0的数字时,就会出现问题。在此示例中为0.3。 这是我的代码: 问题答案: 您的回溯告诉您采用整数,您试图给出一个十进制数,因此您需要使用: 这应该按预期工作: 计算机以各种不同的方式存储数字。Python有