首页 > 编程语言 >Python Django Xadmin 的使用

Python Django Xadmin 的使用

时间:2023-06-06 15:55:51浏览次数:57  
标签:Xadmin name Python django models xadmin urls import Django

笔者 Python 版本为 3.10.6,Django 版本为 4.2.2

本项目代码已开源,可到 GitHub仓库 中查看


本项目用到的 xadminDjangoUeditor 文件夹笔者已经按照 Python 3.10版本进行了修改,点击 链接 即可下载。但如果你使用的 Python 版本较低,可能会因此出现一些 BUG,请到 问题汇总 查看,如果没有,请私聊笔者。

正文

修改 chapter1/settings.py 中的 INSTALLED_APPS 数组

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'users',
    'book',
    'goods',
    'xadmin',
    'crispy_forms',
    'django.conf',
    'DjangoUeditor',
]

重写 chapter1/urls.py 文件

import xadmin
from django.conf import settings
from django.conf.urls.static import static
from django.contrib import admin
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from django.urls import path, include

urlpatterns = [
    path('users/', include('users.urls')),
    path('book/', include('book.urls')),
    path('admin/', admin.site.urls),
    path('goods/', include('goods.urls')),
    path('xadmin/', xadmin.site.urls),
]

urlpatterns += staticfiles_urlpatterns()
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

修改 goods/admin.py 文件

import xadmin
from xadmin import views

from .models import GoodsInfo


class BaseSetting(object):
    enable_themes = True
    use_bootswatch = True


class GoodsInfoAdmin(object):
    list_display = ('id', 'name', 'price', 'weight', 'isnew')
    list_editable = ('price', 'weight')
    list_filter = ['name', 'price']
    search_fields = ('name',)
    style_fields = {'details': 'ueditor'}


class GlobalSettings(object):
    site_title = '商品后台管理系统'
    site_footer = '版权归属@东营科技有限公司'


xadmin.site.register(GoodsInfo, GoodsInfoAdmin)
xadmin.site.register(views.BaseAdminView, BaseSetting)
xadmin.site.register(views.CommAdminView, GlobalSettings)

修改 goods/models.py

from DjangoUeditor.models import UEditorField
from django.db import models


class GoodsInfo(models.Model):
    name = models.CharField(max_length=30, verbose_name='商品名称')
    price = models.FloatField(verbose_name='商品价格', default=20.0)
    weight = models.IntegerField(verbose_name='商品重量', default=500)
    image = models.ImageField(upload_to='upload/%Y/%m', verbose_name='商品图片', default='upload/default.jpg')
    isnew = models.BooleanField(verbose_name='是否新品', default=False)
    # details = models.TextField(verbose_name='商品详情', default='')
    details = UEditorField(verbose_name='商品详情', default='', toolbars='full')

    def __str__(self):
        return self.name
python manage.py makemigrations
python manage.py migrate
python manage.py runserver

访问 http://127.0.0.1:8000/xadmin/

image

image

image

问题汇总

汇总一些你可能会遇到的问题

cannot import name 'lookup_spawns_duplicates' from 'django.contrib.admin.utils'

lookup_spawns_duplicates 替换为 lookup_needs_distinct

No module named "crispy_forms"

pip install django-crispy-forms

标签:Xadmin,name,Python,django,models,xadmin,urls,import,Django
From: https://www.cnblogs.com/huanfei/p/17460772.html

相关文章

  • python切片详解
    索引的一般方式一个完整的切片是包含三个参数和两个冒号":",用于分隔三个参数(start_index、end_index、step)。当只有一个“:”时,默认第三个参数step=1;当一个“:”也没有时,start_index=end_index,表示切取start_index指定的那个元素。切片操作的基本表达式:object[start......
  • 【理论积累】Python中的Pandas库【一】
    Pandas库介绍Pandas是一个用于数据分析的Python第三方库,能够处理和分析不同格式的数据,例如:CSV、Excel、SQL数据库等。Pandas提供了两种数据结构,分别为Series和DataFrame,灵活而方便地进行数据分析和操作。以下是Pandas的核心概念和功能:Series:类似于NumPy的ndarra......
  • Python 多进程之间共享变量
    原文地址:https://blog.51cto.com/alwaysbeta/5162851Python多线程之间共享变量很简单,直接定义全局global变量即可。而多进程之间是相互独立的执行单元,这种方法就不可行了。不过Python标准库已经给我们提供了这样的能力,使用起来也很简单。但要分两种情况来看,一种是Process......
  • Python tkinter 树形列表控件(Treeview)的使用简单举例,建立一个treeview
     importtkinterastkfromtkinter.ttkimportTreeview#创建tkinter应用程序窗口root=tk.Tk()#设置窗口大小和位置root.geometry('500x300+400+300')#不允许改变窗口大小root.resizable(False,False)#设置窗口标题root.title('通信录管理系统')#使用Tree......
  • 实验6 turtle绘图和Python库应用编程体验
    实验任务1task1_1.py源代码1fromturtleimport*23defmove(x,y):4penup()5goto(x,y)6pendown()78defdraw(n,size=100):9foriinrange(n):10fd(size)11left(360/n)1213defmain():14pensize(2)1......
  • 如何在Python中使用JSON模块
    JSON(JavaScriptObjectNotation)是一种流行的轻量级数据交换标准。它表示由键值对组成的数据结构,非常简单易懂。JSON已成为在线服务之间数据交换的行业标准。它广泛用于现代编程语言,包括Python。JSON数据经常表示为嵌套字典、列表和标量值,例如文本、数字、布尔值和空值。之所......
  • python离线下载安装包
    1.背景内网服务器不能直接连接外网,但是需要Python的mysql-connector-2.1.7包2.步骤#下载相关tar包https://pypi.doubanio.com/simple/mysql-connector/mysql-connector-2.1.7.tar.gz#上传到服务器后,解压tar-zxvfmysql-connector-2.1.7.tar.gz#进入解压目录,安装cdm......
  • python redis 链接集群 阿里云集群
    前言集群redis不支持选dbcluster方法里没有支持选中db的选项,javapy都不行#pipinstallredis==3.5.3#pipinstallredis-py-cluster==2.1.3#亲测,我是使用的这两个版本进行处理的fromredisclusterimportRedisClusternodes=[{"host":"dsfwwqfggy65aadfggi.redis.r......
  • python中同时指定多个分隔符将字符串拆分为列表
     001、>>>str1="ab_cdef_ghij_kl"##测试字符串>>>str1.split("")##一句空格进行拆分['ab_cd','ef_gh','ij_kl']>>>importre>>>re.split("......
  • Django修改数据库时出错 django.db.utils.OperationalError: (1091, "Can't DROP 'con
    记录下简单的处理方法:报错信息:django.db.utils.OperationalError:(1091,"Can'tDROP'content';checkthatcolumn/keyexists")可能数据库中的字段结构已经完成了此字段的修改但是在  pythonmanage.pymakemigrations新生成的migrations/0002_auto_20191011_2104.py......