57
The likely cause is that you’re setting user = request.user
, where request.user is not a real User object, but a SimpleLazyObject instance. See django: Purpose of django.utils.functional.SimpleLazyObject? for more details, but using request.user.id
should fix your issue.
11
You have to login when running this piece of code on localhost. Otherwise the request.user
will be a SimpleLazyObject
, then the errors comes out.
- [Django]-Django Pass Multiple Models to one Template
- [Django]-TemplateDoesNotExist – Django Error
- [Django]-Django javascript files
9
Here you trying to create a Bookmark object based on request.user , but request.user is a SimpleLazyObject , so we can get a more secure user object by :
from django.contrib import auth
current_user = auth.get_user(request)
and further your query should be
bookmark, created = Bookmark.objects.get_or_create(
user=current_user,
link=link
)
- [Django]-Matplotlib – Tcl_AsyncDelete: async handler deleted by the wrong thread?
- [Django]-Django 1.9 ImportError for import_module
- [Django]-Django index page best/most common practice
5
Most likely the user who is loading the page is not authenticated. Therefor the error is thrown. If you want to save a request.user reference to the database, you obviously have to ensure that only authenticated users are able to call the function.
In your case there are two possibilities – add the “@login_required” decorator to the function or check if the user is authenticated inside the code. Here are the snippets:
With Decorator:
from django.contrib.auth.decorators import login_required
@login_required
def bookmark_save_page(request):
if request.method == 'POST':
form = BookmarkSaveForm(request.POST)
if form.is_valid():
# Do something
OR – checking inside the code if the user is authenticated:
def bookmark_save_page(request):
if request.method == 'POST' and request.user.is_authenticated():
form = BookmarkSaveForm(request.POST)
if form.is_valid():
# Do something
- [Django]-ImportError: cannot import name 'six' from 'django.utils'
- [Django]-Populating django field with pre_save()?
- [Django]-Django: Use of DATE_FORMAT, DATETIME_FORMAT, TIME_FORMAT in settings.py?
1
Thats strange, I had the same problem and the same solution. After trying a bunch of alternatives I went back to user = request.user and it worked
- [Django]-How to test custom template tags in Django?
- [Django]-Django: How should I store a money value?
- [Django]-Serializer call is showing an TypeError: Object of type 'ListSerializer' is not JSON serializable?
0
if you want to set an addition request attr, based on user
-> you need to use lazy
Django function which is correctly handled by Field.get_prep_value
from django.utils.functional import lazy
request.impersonator = lazy(lambda: request.user.id, int)()
- [Django]-Can we append to a {% block %} rather than overwrite?
- [Django]-Django Installed Apps Location
- [Django]-NumPy array is not JSON serializable