Это класс
class Post(models.Model):
author = models.ForeignKey(User)
.
.
last_seen = models.DateTimeField(auto_add = True)
Я хочу изменить время last_seen на другое время в будущем
last_seen = Post.objects.get(author = user).last_seen
if request.user.is_authenticated:
last_seen = timezone.now()
Когда я запускаю print (last_seen), я обнаруживаю, что оно не меняется, а значение даты и времени остается старым, что не так?
2 ответа
Вы не сохранили обновление публикации объекта. Следовательно, это не отражается. Вы можете сделать то же самое
your_post = Post.objects.get(author = user)
if request.user.is_authenticated:
your_post.last_seen = timezone.now()
your_post.update() // can also you object.save()
Вы не обновляли это для сообщения, вы только установили локальную переменную на текущую метку времени.
Вы можете обновить записи Post
для аутентифицированного пользователя с помощью:
from django.utils.timezone import now
if request.user.is_authenticated:
Post.objects.filter(author=user).update(last_seen=now())
Похожие вопросы
Новые вопросы
python
Python - это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Тем не менее, для вопросов о Python, связанных с версией, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas и NumPy) включите его в теги.