django - int() 参数必须是字符串或数字,而不是 'SimpleLazyObject'

标签 django django-views

我收到了错误消息,

TypeError at /save/ int() argument must be a string or a number, not 'SimpleLazyObject'

在执行以下表单时。


View .py

def bookmark_save_page(request):
    if request.method == 'POST':
        form = BookmarkSaveForm(request.POST)
        if form.is_valid():
            # create or get link
            link, dummy = Link.objects.get_or_create(
                    url = form.cleaned_data['url']
                    )
            # create or get bookmark
            bookmark, created = Bookmark.objects.get_or_create(
                    user=request.user,
                    link=link
                    )
            # update bookmarks title
            bookmarks.title = form.cleaned_data['title']
            # if the bookmark is being updated, clear old tag list.
            if not created:
                bookmark.tag_set.clear()
            # create new tag list
            tag_names = form.cleaned_data['tags'].split()
            for tag_name in tag_names:
                tag, dummy = Tag.objects.get_or_create(name=tag_name)
                bookmark.tag_set.add(tag)
            # save bookmark to database.
            bookmark.save()
            return HttpResponseRedirect(
                    '/user/%s/' % request.user.username
                    )
    else:
        form = BookmarkSaveForm()
    variables = RequestContext(request, {
        'form': form
    })
    return render_to_response('bookmark_save.html', variables)

我以为我出错了,因为我在

传递了链接
bookmark, created = Bookmark.objects.get_or_create(
                    user=request.user,
                    link=link
                    )

但我不知道如何修复它。 我该如何解决?

最佳答案

可能的原因是您正在设置 user = request.user,其中 request.user 不是真正的 User 对象,而是一个 SimpleLazyObject 实例。参见 django: Purpose of django.utils.functional.SimpleLazyObject?了解更多详情,但使用 request.user.id 应该可以解决您的问题。

关于django - int() 参数必须是字符串或数字,而不是 'SimpleLazyObject',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15878860/

相关文章:

python - 如何在 django admin 中处理这种特殊情况?

database - Google App Engine 数据库值不递增

python - 如何在djangoviews.py中将一个类对象的id传递给另一个类对象

database - 在 Django 中查询

python - 如何在 Django 上构建幻想体育分析网站的后端?

抽象基类的 Django 模型字段

python - Django 请求查找以前的推荐人

python - django url 中两个或两个以上可选参数

python - 与 python 一起四舍五入

Django)使用多对多关系 View 中的查询集过滤