前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >超越村后端开发(2:新建models.py+xadmin的引入)

超越村后端开发(2:新建models.py+xadmin的引入)

作者头像
玩蛇的胖纸
发布于 2019-04-09 07:08:02
发布于 2019-04-09 07:08:02
51800
代码可运行
举报
运行总次数:0
代码可运行

1.新建Model

1.users数据

1.在apps/users/models.py中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from datetime import datetime
from django.db import models
from django.contrib.auth.models import AbstractUser

# Create your models here.


class UserProfile(AbstractUser):
    """
    管理员
    """
    name=models.CharField(max_length=30,null=True,blank=True,verbose_name='姓名')
    mobile=models.CharField(max_length=11,null=True,blank=True,verbose_name='电话')

    class Meta:
        verbose_name='管理员'
        verbose_name_plural = verbose_name

    def __str__(self):
        return self.username


class WxUsers(models.Model):
    """
    微信用户
    """
    open_id=models.CharField(max_length=64,null=True,blank=True,verbose_name='OpenId')
    token=models.CharField(max_length=64,null=True,blank=True,verbose_name='token')
    nickName=models.CharField(max_length=30,null=True,blank=True,verbose_name='微信名')
    avatarUrl=models.CharField(max_length=200,null=True,blank=True,verbose_name='用户头像URL')
    gender = models.CharField(max_length=4, choices=(('0', '未知'),('1', '男'), ('2', '女')), default='0',
                              verbose_name='性别')
    province=models.CharField(max_length=20,null=True,blank=True,verbose_name='用户所在省')
    city=models.CharField(max_length=20,null=True,blank=True,verbose_name='用户所在市')
    country=models.CharField(max_length=20,null=True,blank=True,verbose_name='用户所在旗县区')
    longitude=models.CharField(max_length=10,null=True,blank=True,verbose_name='经度')
    latitude=models.CharField(max_length=10,null=True,blank=True,verbose_name='纬度')
    last_login_time = models.DateTimeField(default=datetime.now, verbose_name="最后登录时间")
    add_time = models.DateTimeField(default=datetime.now, verbose_name="添加时间")

    class Meta:
        verbose_name='微信用户'
        verbose_name_plural=verbose_name

    def __str__(self):
        return self.nickName

2.在settings.py中增加配置项:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
AUTH_USER_MODEL='users.UserProfile'

3.执行数据更新命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
python manage.py makemigrations
python manage.py migrate

2.wish数据

1.apps/wish/models.py中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from django.db import models
from users.models import WxUsers,UserProfile
from datetime import datetime
from django.utils.safestring import mark_safe
# Create your models here.


class Wish(models.Model):
    """
    愿望表
    """
    wxuser=models.ForeignKey(WxUsers,on_delete=models.CASCADE)
    content=models.CharField(max_length=200,default='',verbose_name='愿望内容',help_text='最多200字')
    status=models.CharField(max_length=8, choices=(('0', '进行中'),('1', '放弃了'), ('2', '超时了')), default='0',
                              verbose_name='阶段')
    pv_num=models.IntegerField(default=0,verbose_name='浏览数')
    up_num=models.IntegerField(default=0,verbose_name='点赞数')
    share_num=models.IntegerField(default=0,verbose_name='转发数')
    bb_num=models.IntegerField(default=0,verbose_name='评论数')
    end_time = models.DateTimeField(default=datetime.now, verbose_name="添加时间")
    add_time = models.DateTimeField(default=datetime.now, verbose_name="添加时间")

    class Meta:
        verbose_name='愿望表'
        verbose_name_plural=verbose_name

    def __str__(self):
        return self.content


class News(models.Model):
    """
    新闻表
    """
    user=models.ForeignKey(UserProfile,on_delete=models.CASCADE)
    banner=models.ImageField(max_length=200, upload_to='banner/',verbose_name='轮播图')
    title=models.CharField(max_length=15,default='',verbose_name='新闻标题',help_text='最多15字')
    content=models.CharField(max_length=800,default='',verbose_name='新闻正文',help_text='最多800字')
    add_time = models.DateTimeField(default=datetime.now, verbose_name="添加时间")

    class Meta:
        verbose_name='新闻表'
        verbose_name_plural=verbose_name

    def __str__(self):
        return self.title

    def image_url(self):
        return mark_safe('<img src="/media/{0}" class="field_img">'.format(self.banner))

    image_url.short_description = '轮播图'


class Images(models.Model):
    """
    新闻图片
    """
    image = models.ImageField(max_length=200, upload_to='images/')
    news=models.ForeignKey(News, verbose_name="新闻", blank=True,null=True,on_delete=models.CASCADE)
    add_time = models.DateTimeField(default=datetime.now, verbose_name='添加时间')

    class Meta:
        verbose_name = "新闻图片"
        verbose_name_plural = verbose_name

    def image_url(self):
        return mark_safe('<img src="/media/{0}" class="field_img">'.format(self.image))

    image_url.short_description = '图片'

2.安装 pillow包(做图片处理的)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install pillow

3.执行数据更新命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
python manage.py makemigrations
python manage.py migrate

 3.user_operation数据

 1.apps/user_operation/models.py中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from django.db import models
from datetime import datetime
from users.models import WxUsers,UserProfile
from wish.models import Wish
# Create your models here.


class Message(models.Model):
    """
    评论表,消息表
    """
    user_send=models.ForeignKey(WxUsers,on_delete=models.CASCADE,verbose_name='发出方',related_name='send')
    user_receive = models.ForeignKey(WxUsers, on_delete=models.CASCADE, verbose_name='接收方', related_name='receive')
    wish=models.ForeignKey(Wish,on_delete=models.CASCADE,verbose_name='被评论的愿望')
    content = models.CharField(max_length=30, default='', verbose_name='内容', help_text='最多30字')
    is_read=models.BooleanField(default=False,verbose_name='是否已读')
    add_time = models.DateTimeField(default=datetime.now, verbose_name="添加时间")

    class Meta:
        verbose_name='评论表'
        verbose_name_plural=verbose_name

    def __str__(self):
        return self.content


class Pick(models.Model):
    """
    点赞表
    """
    user = models.ForeignKey(WxUsers, on_delete=models.CASCADE, verbose_name='点赞者')
    wish = models.ForeignKey(Wish, on_delete=models.CASCADE, verbose_name='被点赞的愿望')
    action=models.BooleanField(default=True,verbose_name='行为',help_text='true是点赞false是取消点赞')

    add_time = models.DateTimeField(default=datetime.now, verbose_name="添加时间")

    class Meta:
        verbose_name='点赞表'
        verbose_name_plural=verbose_name

    def __str__(self):
        return self.user


class Share(models.Model):
    """
    分享表
    """
    user = models.ForeignKey(WxUsers, on_delete=models.CASCADE, verbose_name='分享者')
    wish = models.ForeignKey(Wish, on_delete=models.CASCADE, verbose_name='被分享的愿望')
    add_time = models.DateTimeField(default=datetime.now, verbose_name="添加时间")

    class Meta:
        verbose_name='分享表'
        verbose_name_plural=verbose_name

    def __str__(self):
        return self.user


class Notice(models.Model):
    """
    系统通知表(超越私信)
    """
    admin=models.ForeignKey(UserProfile,on_delete=models.CASCADE)
    content = models.CharField(max_length=200, default='', verbose_name='内容', help_text='最多200字')
    add_time = models.DateTimeField(default=datetime.now, verbose_name="添加时间")

    class Meta:
        verbose_name='系统通知表'
        verbose_name_plural=verbose_name

    def __str__(self):
        return self.content

2.执行数据更新命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
python manage.py makemigrations
python manage.py migrate

2.引入xadmin

1.将xadmin文件夹放入extra_apps目录下:

2.在每个app下新建adminx.py

1.apps/users/目录下新建adminx.py:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import xadmin
from xadmin import views
from .models import WxUsers


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


class GlobalSettings(object):
    site_title = "超越村后台管理系统"
    site_footer = "chaoyuecun"
    # menu_style = "accordion"


class WxUsersAdmin(object):
    list_display = ["open_id", "token", "nickName", "gender","province","city","country","last_login_time","add_time"]
    list_filter = [ "gender","province","city","country","last_login_time","add_time"]
    search_fields = ["gender","province","city","country" ]


xadmin.site.register(WxUsers, WxUsersAdmin)
xadmin.site.register(views.BaseAdminView, BaseSetting)
xadmin.site.register(views.CommAdminView, GlobalSettings)

2.apps/wish/目录下新建adminx.py:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import xadmin
from .models import Wish, News


class WishAdmin(object):
    list_display = ['wxuser', 'content',"status","pv_num","up_num", "share_num","bb_num","end_time","add_time"]
    list_filter =['wxuser', 'content',"status","pv_num","up_num", "share_num","bb_num","end_time","add_time"]
    search_fields=['wxuser', 'content',"status","pv_num","up_num", "share_num","bb_num"]


class NewsAdmin(object):
    list_display = ['user', 'banner',"title","content","add_time"]
    list_filter =['user', 'banner',"title","content","add_time"]
    search_fields=['user', 'banner',"title","content"]


xadmin.site.register(Wish, WishAdmin)
xadmin.site.register(News, NewsAdmin)

3.apps/user_operation/目录下新建adminx.py:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import xadmin
from .models import Message,Pick,Share,Notice


class MessageAdmin(object):
    list_display = ['user_send', 'user_receive',"wish","content","is_read","add_time"]
    list_filter =['user_send', 'user_receive',"wish","content","is_read","add_time"]
    search_fields=['user_send', 'user_receive',"wish","content","is_read"]


class PickAdmin(object):
    list_display = ['user', 'wish',"action","add_time"]
    list_filter =['user', 'wish',"action","add_time"]
    search_fields=['user', 'wish']


class ShareAdmin(object):
    list_display = ['user', 'wish',"add_time"]
    list_filter =['user', 'wish',"add_time"]
    search_fields=['user', 'wish']


class NoticeAdmin(object):
    list_display = ['admin', 'content',"add_time"]
    list_filter =['admin', 'content',"add_time"]
    search_fields=['admin', 'content']


xadmin.site.register(Message, MessageAdmin)
xadmin.site.register(Pick, PickAdmin)
xadmin.site.register(Share, ShareAdmin)
xadmin.site.register(Notice, NoticeAdmin)

3.安装和配置xadmin依赖包

1.安装依赖包 django-crispy-forms django-reversion django-formtools future httplib2 six django-import-export

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install django-crispy-forms django-reversion django-formtools future httplib2 six django-import-export

2.在settings中注册

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'users.apps.UsersConfig',
    'wish.apps.WishConfig',
    'user_operation.apps.UserOperationConfig',
    'crispy_forms',
    'xadmin'
]

3.安装用来操作和导出Excel文件的包 xlwt xlsxwriter

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install xlwt xlsxwriter

4.打开终端,执行数据更新命令,生成xadmin默认的表

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
python manage.py makemigrations
python manage.py migrate

5.配置url,在chaoyuecun/urls.py:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from django.contrib import admin
from django.urls import path
import xadmin

urlpatterns = [
    # path('admin/', admin.site.urls),
    path('xadmin/', xadmin.site.urls),
]

6.创建超级用户

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
python manage.py createsuperuser
Username: admin
邮箱:
Password:
Password (again):

 创建完毕,启动项目,然后访问

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
http://127.0.0.1:8000/xadmin/

就可以登录xadmin后台了,但是此时后台还是英文的。

7.将语言设定为中文

1.在settings中修改

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
LANGUAGE_CODE = 'zh-hans'

TIME_ZONE = 'Asia/Shanghai'

USE_I18N = True

USE_L10N = True

USE_TZ = False

 2.在每个app下的apps.py中做修改,加上verbose_name

1.apps/users/apps.py:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from django.apps import AppConfig


class UsersConfig(AppConfig):
    name = 'users'
    verbose_name = '用户'
1.apps/user_operation/apps.py:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from django.apps import AppConfig


class UserOperationConfig(AppConfig):
    name = 'user_operation'
    verbose_name = '用户操作'
1.apps/wish/apps.py:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from django.apps import AppConfig


class WishConfig(AppConfig):
    name = 'wish'
    verbose_name = '愿望'

这时再看xadmin界面,已经变成中文的了。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-03-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
为啥车企会闹芯片荒
3月26日,蔚来汽车发布公告称,受芯片短缺影响,自29日起,“江淮蔚来”合肥制造工厂暂停汽车生产活动5个工作日。这使蔚来成为国内首家因“缺芯”被迫暂停生产的新能源车企。此外,蔚来还宣布下调其第一季度交付量至1.95万辆,称半导体的整体供应紧张,已经影响了公司今年3月的汽车产量。
用户2760455
2022/06/08
1540
为啥车企会闹芯片荒
原价23.80美元,汽车芯片翻15倍被倒卖到中国
选自Reuters 机器之心编译 编辑:shanshan 车用芯片荒未解,主战场转至中国。 7 月 19 日,据路透社报道,新加坡商人 Kelvin Pang 正准备利用中国的车用芯片荒赚进 2,300 万美元。 他买下了 62,000 个微控制器(MCU),目前存放在香港的仓库里,打算以每个 375 美元的价格在深圳出售。这批 MCU 的德国原始买家当初买进成本是每个 23.80 美元,但 Kelvin Pang 不愿透露自己的接手价格。 他说,过去两年的全球芯片荒,让这种原本靠薄利多销的转手贸易,变
机器之心
2022/07/20
3890
原价23.80美元,汽车芯片翻15倍被倒卖到中国
汽车芯片紧缺or过剩?瑞萨电子这样解答!中国市场成关键
近日,全球半导体解决方案供应商瑞萨电子携面向ADAS/AD、汽车网关、智能座舱及新能源汽车的多款先进解决方案亮相2022年慕尼黑华南电子展。在展会期间,瑞萨电子还召开了媒体见面会,与会的技术专家也向媒体详细介绍了瑞萨电子在汽车电子领域的创新技术与解决方案应用,同时也分享了对于汽车芯片供需结构变化的看法。
芯智讯
2022/11/29
4510
车用芯片大厂纷纷扩产,委外订单或遭削减!台积电、联电将承压
2月17日消息,英飞凌、瑞萨、德州仪器(TI)等车用芯片大厂均启动了新晶圆厂建设计划,再加上同样瞄准车用芯片的新的晶圆制造企业Rapidus,业界估四家业者扩产投入的金额将超过250亿美元,恐削减对台积电、联电等晶圆代工厂委外代工订单,也让中国台湾最大车用微控制器(MCU)厂新唐承压。
芯智讯
2023/03/24
2960
车用芯片大厂纷纷扩产,委外订单或遭削减!台积电、联电将承压
汽车芯片的断供危机
在“大众即将停产”的传闻不断发酵之后,大众中国、上汽大众、一汽大众相继回应,其内容都大致一样:芯片供应确实是受到了影响,但情况没有传闻那么严重。
镁客网
2020/12/18
7080
全球第三大晶圆代工厂苏州员工疑似染疫,缺芯问题再成焦点
2月14日,全球第三大晶圆代工厂联电发布公告称,位于苏州8吋晶圆厂和舰芯片制造公司因有一名员工疑似染疫,目前正配合当地主管机关进行全员检测,生产活动逐步暂停。
数据猿
2022/04/06
4360
全球第三大晶圆代工厂苏州员工疑似染疫,缺芯问题再成焦点
MCU缺货涨价后的国产化浪潮(二):MCU 产能增长相对有限,未来供需结构将趋于平衡长
2020年Q3 以来的MCU 涨价缺货状态已持续一年,交货周期也一再延长。那么MCU产能情况有何波动?未来供需是何走向?
AI 电堂
2021/10/09
8730
半导体硅片出现降价!近三年来首次!
2月6日消息,据中国台湾媒体报道,目前半导体硅片市场已出现长约客户要求延后拉货之际,现货价近期开始领跌,这也是新冠疫情爆发三年多来的首次出现,并且从6吋、8吋一路蔓延至12吋,牵动了众多半导体硅片厂的后市。业者表示,现阶段晶圆厂端半导体硅片库存“多到满出来”,仍需要时间消化。
芯智讯
2023/02/09
2110
车用半导体需求下滑,车厂纷纷砍单并要求降价
3月28日消息,在全球半导体市场“遇冷”的当下,原本仍存在结构性紧缺的车用半导体市场也开始出现了“客户砍单要求降价”的情况。
芯智讯
2023/04/11
1890
车用半导体需求下滑,车厂纷纷砍单并要求降价
芯片供需缺口或达30%?刚刚,拜登正式签署行政令解决半导体芯片短缺问题
众所周知,半导体行业对于突然增加的需求的反应并不及时。据外媒 TomsHardware 报道,一些分析师认为,现在的芯片需求已经超过了供应能力的 30%,要想让供应满足需求,至少需要三到四个季度。从本质上说,这意味着芯片短缺问题将一直持续到 2022 年。
机器之心
2021/03/15
2980
芯片供需缺口或达30%?刚刚,拜登正式签署行政令解决半导体芯片短缺问题
芯片大厂,跌跌不休
半导体芯片巨头股价开始大幅下跌,进入技术性熊市。 本文转载自公众号:半导体行业观察(ID:icbank),作者:李晨光 过去很长一段时间困扰全球半导体业的芯片短缺,似乎有了明显的缓解。 反映到资本市场上,由于市场需求放缓和芯片制造商的库存增加,整个半导体行业将出现低迷,于是投资者开始纷纷抛售半导体巨头的股票,英伟达、英特尔、台积电、联发科等半导体芯片巨头股价开始大幅下跌,进入技术性熊市。 全球最大的芯片代工制造商台积电的股价今年以来下跌超过28%。 台积电高管也坦言,整个行业正在应对“库存调整”,这导致客
镁客网
2022/10/11
5220
芯片大厂,跌跌不休
蔚来汽车因缺芯停产股价暴跌,360行为何车企最缺芯?
蔚来汽车(NYSE:NIO)3月26日发布公告,因芯片短缺,该公司决定从3月29日起暂停5天位于合肥的江淮工厂生产进度。
新智元
2021/04/14
3790
芯片短缺加剧,上半年汽车销量逆势上涨的丰田也扛不住了,9月减产40%
梦晨 发自 凹非寺 量子位 报道 | 公众号 QbitAI 因全球芯片短缺,最大汽车生产商丰田在周四宣布9月份汽车产量将减少40%,从90万量下降至54万。 丰田股价当日下跌4.4%,创了2018年12月以来的单日最大跌幅记录。 要知道丰田可是以优秀供应链管理著称,自2011年日本地震之后更是为应对突发情况冲击时刻储备着2-6个月所需的芯片。 别人都缺,就他不缺,让丰田第二季度在美国的销量还首次超过通用。 结果到现在丰田也扛不住了。 奔驰也够惨,本来今年二季度销量增长了27%,其中在第二大市场欧洲更是猛增
量子位
2023/03/10
1980
芯片短缺加剧,上半年汽车销量逆势上涨的丰田也扛不住了,9月减产40%
谈谈为何会出现全球“缺芯”
自2020年起,芯片短缺的问题逐渐加剧,手机芯片、车载芯片缺货量直线上升,一度引起业界恐慌。
SDNLAB
2021/03/25
6850
美的布局“造芯”工程,是缓解芯片荒还是重复造轮子?
最近的芯片行业总能搞出一些“大新闻”。进入2月,美国和欧盟先后公布了数额巨大的芯片资助计划;2月4日,拜登政府提出拨款520亿美元资助发展半导体产业、450亿美元加强高科技产品供应链的《2022年美国竞争法案》,主要用于加强芯片研发以及解决多行业芯片短缺等问题。欧洲几乎同步,2月8日,欧盟委员会通过《欧洲芯片法案》(The European Chips Act),旨在加强欧盟半导体生态系统,确保芯片供应链弹性和减少国际依赖,其目标是到2030年欧洲生产的芯片将在全球市场上占到20%。
数据猿
2022/04/06
3640
美的布局“造芯”工程,是缓解芯片荒还是重复造轮子?
半导体大厂齐晒成绩单:2020普大喜奔,2021持续向好?
近日,各半导体大厂纷纷紧锣密鼓地发布了2020年第四季及全年财报。从大家晒出的成绩单看,各个都是成绩斐然。
AI 电堂
2021/02/07
5280
受芯片业务拖累,三星二季度利润恐将暴跌99%
6月26日消息,自去年以来,受全球存储芯片市场持续下滑影响,各大存储芯片厂商业绩纷纷大跌。目前存储芯片市场仍处于谷底,这也意味着各大存储芯片厂商二季度业绩仍将承压。分析师研判,二季度三星和SK海力士芯片业务恐难逃亏损。
芯智讯
2023/08/09
1760
受芯片业务拖累,三星二季度利润恐将暴跌99%
汽车缺芯依旧?丰田、本田宣布12月继续减产
近日摩根士丹利(大摩)发布的“亚太车用半导体”报告指出,部分车用半导体供应商包括瑞萨半导体、安森美半导体等,目前正在削减今年第四季度的芯片测试订单,显示车用芯片缺货得到明显缓解,砍单潮正开始发生中。
芯智讯
2022/12/09
1770
汽车缺芯依旧?丰田、本田宣布12月继续减产
2023年全球半导体营收将跌破6000亿美元,同比下滑3.6%
11月29日消息,据研究机构Gartner最新的预测,今年全球半导体营收达6,180 亿美元,成长4%。2023 年半导体营收预测将从此前预计的6230亿美元下修至5960 亿美元,较今年减少3.6%。
芯智讯
2022/12/09
3400
2023年全球半导体营收将跌破6000亿美元,同比下滑3.6%
瑞银:半导体砍单潮来了,下半年有望供需平衡
4月4日消息,近日,瑞银证券在访谈了全球100家半导体渠道商或直接销售人员后,发布了最新的半导体景气报告,给出了六大结论,强调市场重复下单的情况较原先预期的更普遍,随之而来的则是逐渐出现削减订单潮,预期要到今年下半年供需情况才有望趋于平衡。
芯智讯
2023/04/11
1690
瑞银:半导体砍单潮来了,下半年有望供需平衡
推荐阅读
相关推荐
为啥车企会闹芯片荒
更多 >
LV.0
这个人很懒,什么都没有留下~
目录
  • 1.新建Model
    • 1.users数据
      • 1.在apps/users/models.py中:
      • 2.在settings.py中增加配置项:
      • 3.执行数据更新命令:
    • 2.wish数据
      • 1.apps/wish/models.py中:
      • 2.安装 pillow包(做图片处理的)
      • 3.执行数据更新命令:
    •  3.user_operation数据
      •  1.apps/user_operation/models.py中:
      • 2.执行数据更新命令:
  • 2.引入xadmin
    • 1.将xadmin文件夹放入extra_apps目录下:
    • 2.在每个app下新建adminx.py
      • 1.apps/users/目录下新建adminx.py:
      • 2.apps/wish/目录下新建adminx.py:
      • 3.apps/user_operation/目录下新建adminx.py:
    • 3.安装和配置xadmin依赖包
      • 1.安装依赖包 django-crispy-forms django-reversion django-formtools future httplib2 six django-import-export
      • 2.在settings中注册
      • 3.安装用来操作和导出Excel文件的包 xlwt xlsxwriter
    • 4.打开终端,执行数据更新命令,生成xadmin默认的表
    • 5.配置url,在chaoyuecun/urls.py:
    • 6.创建超级用户
    • 7.将语言设定为中文
      • 1.在settings中修改
      •  2.在每个app下的apps.py中做修改,加上verbose_name
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档