settings.py
INSTALLED_APPS = [
'simpleui',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'captcha',
'django_tables2',
'ckeditor',
'ckeditor_uploader',
'django_extensions',
'rangefilter',
'bootstrap4',
]
models.py
from django.db import models
from django.contrib.admin import display
from django.core.validators import MinValueValidator, MaxValueValidator
from django.contrib.auth.models import User
from django.db.transaction import atomic
from django.utils.html import format_html
from datetime import datetime
class T(models.Model):
create_at = models.DateTimeField(auto_now_add=True)
class Meta:
verbose_name = "XX管理"
verbose_name_plural = "XX管理"
orderding = ('-create_at',)
def __str__(self) -> str:
return self.id
admin.py
from django.contrib import admin
from django.contrib import messages
from .models import *
admin.site.site_header = 'XX'
admin.site.site_title = 'XX'
@admin.register(XXX)
class XXAdmin(admin.ModelAdmin):
list_display = ('id',)
list_filter = ('xxx',)
search_fields = ('xxx', )
actions = ['action1',]
@admin.action(description='XXX')
def xxx_action(self, request, qs):
"""
自定义的action
"""
if qs.count() > 0:
self.message_user(request, "操作成功!", messages.SUCCESS)
else:
self.message_user(request, "操作失败", messages.ERROR)
def get_queryset(self, request):
"""
重写queryset
"""
qs = super().get_queryset(request)
if request.user.is_superuser:
return qs
else:
return qs
def formfield_for_foreignkey(self, db_field, request, **kwargs):
"""
修改表单里foreinkey字段对应的选项
"""
if db_field.name == "author":
kwargs["initial"] = request.user
kwargs["queryset"] = User.objects.filter(username__istartswith='admin')
return super().formfield_for_foreignkey(db_field, request, **kwargs)
views.py
from django.shortcuts import render, get_object_or_404
from mysite.settings import BASE_DIR
from django.http import HttpResponse, JsonResponse
from django.contrib.auth.decorators import login_required
from .models import *
def my_view(request):
"""
"""
forms.py
前端显示日期
from django import forms
from django.forms.widgets import DateTimeInput
class LocationSearchForm(forms.Form):
start_time = forms.DateTimeField(widget=DateTimeInput(attrs={'type': 'datetime-local'}))
end_time = forms.DateTimeField(widget=DateTimeInput(attrs={'type': 'datetime-local'}))