django admin列表不显示秒问题处理
修改setting.py
from django.conf.locale.zh_Hans import formats as zh_formats
DATETIME_FORMAT = "Y-m-d H:i:s"
zh_formats.DATETIME_FORMAT = "Y-m-d H:i:s"
修改setting.py
from django.conf.locale.zh_Hans import formats as zh_formats
DATETIME_FORMAT = "Y-m-d H:i:s"
zh_formats.DATETIME_FORMAT = "Y-m-d H:i:s"
model
class Video(models.Model):
view_count = models.IntegerField(verbose_name='浏览量', default=0)
like_count = models.IntegerField(verbose_name='点赞量', default=0)
collect_count = models.IntegerField(verbose_name='收藏量', default=0)
comment_count = models.IntegerField(verbose_name='评论量', default=0)
# 忽略其他字段
view
from django.db.models import Sum, Count
data = Video.objects.aggregate(
count=Count('id'),
view_count=Sum('view_count'),
like_count=Sum('like_count'),
collect_count=Sum('collect_count'),
comment_count=Sum('comment_count')
)
1.中间件
2.request.user
from threading import local
_user = local()
class CurrentUserMiddleware:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
_user.value = request.user
response = self.get_response(request)
return response
@staticmethod
def get_current_user():
return getattr(_user, 'value', None)
setting中
MIDDLEWARE = [
# ...
"django.contrib.auth.middleware.AuthenticationMiddleware",
#...
#需要在 auth中间件后面
"backend.middleware.CurrentUserMiddleware",
]
使用
form .middleware import CurrentUserMiddleware
user = CurrentUserMiddleware.get_current_user()
# model中使用
class MyModel(models.Model):
creator = models.ForeignKey(User, on_delete=models.SET_NULL, verbose_name='创建人',
related_name='creator', null=True, blank=True, )
def save(self, *args, **kwargs):
if not self.pk and not self.author:
self.author = CurrentUserMiddleware.get_current_user()
super().save(*args, **kwargs)
@api_view(["GET"])
@authentication_classes([SessionAuthentication, BasicAuthentication])
@permission_classes([IsAuthenticated])
def tag_create(request):
user=request.user
class ShareSerializer(serializers.ModelSerializer):
class Meta:
model = Share
# fields = '__all__'
exclude = ()
def to_representation(self, instance):
representation = super().to_representation(instance)
representation['created_at'] = instance.created_at.strftime("%Y-%m-%d %H:%M:%S")
representation['updated_at'] = instance.updated_at.strftime("%Y-%m-%d %H:%M:%S")
return representation
from django.db import transaction
@transaction.atomic
def viewfunc(request):
# This code executes inside a transaction.
do_stuff()