django-35.xadmin注册表信息

xadmin后台如果要对表的内容增删改查,跟之前的admin.py文件里面写注册表信息一样,需在admin.py同一级目录新建一个adminx.py的文件。
然后在adminx.py文件控制页面上需显示的内容。

models模块

models模块跟之前设计表是一样的,在models.py文件设计表的字段显示,以Student表为例。

# models.py

from django.db import models

# Create your models here.

class Student(models.Model):
    ‘‘‘学生成绩‘‘‘
    student_id = models.CharField(max_length=30, verbose_name="学号")
    name = models.CharField(max_length=30, verbose_name="姓名")
    age = models.IntegerField(verbose_name="年龄")
    score = models.IntegerField(verbose_name="分数")

    class Meta:
        verbose_name = "学生成绩"
        verbose_name_plural = verbose_name

如果有表的关联,以之前的admin后台一对一关系OneToOneField为例https://www.cnblogs.com/yoyoketang/p/10511220.html

# models.py

class Card(models.Model):
    ‘‘‘银行卡 基本信息‘‘‘
    card_id = models.CharField(max_length=30, verbose_name="卡号", default="")
    card_user = models.CharField(max_length=10, verbose_name="姓名", default="")
    add_time = models.DateField(auto_now=True, verbose_name="添加时间")

    class Meta:
        verbose_name = "银行卡账户_基本信息"
        verbose_name_plural = ‘银行卡账户‘

    def __str__(self):
        return self.card_id

class CardDetail(models.Model):
    ‘‘‘银行卡详情信息‘‘‘
    card = models.OneToOneField(Card,
                               on_delete=models.CASCADE,
                               verbose_name="卡号"
                                )
    tel = models.CharField(max_length=30, verbose_name="电话", default="")
    mail = models.CharField(max_length=30, verbose_name="邮箱", default="")
    city = models.CharField(max_length=10, verbose_name="城市", default="")
    address = models.CharField(max_length=30, verbose_name="详细地址", default="")

    class Meta:
        verbose_name = "账户_个人资料"
        verbose_name_plural = verbose_name

    def __str__(self):
        return self.card.card_user

adminx.py文件

在admin.py文件的同一目录新建一个adminx.py(注意只能是adminx.py,不能叫其它的名称)
在adminx.py里与之前的admin.py代码有一些不一样

  • 之前import admin, 这里import xadmin
  • 之前注册表时继承admin.ModelAdmin, 这里继承object
  • 之前inlines 关联的表(class MoreInfo)继承admin.StackedInline, 这里继承object
  • 之前可以有2种注册方式,可以用装饰器方法@admin.register(表类名),这里只能通过xadmin.site.register(表类名, xxx)方式
# adminx.py
import xadmin
from .models import Student, Card, CardDetail

class ControlStudent(object):
    # 显示的字段
    list_display = (‘student_id‘, ‘name‘, ‘age‘, ‘score‘)
    # 搜索条件
    search_fields = (‘name‘,)

    # 每页显示10条
    list_per_page = 10

class MoreInfo(object):
    model = CardDetail

class ControlCard(object):
    list_display = ["card_id", "card_user", "add_time"]

    # 在Card页面显示更多信息CardDetail
    inlines = [MoreInfo]

# 注册Student表
xadmin.site.register(Student, ControlStudent)

# 注册card表,关联CardDetail
xadmin.site.register(Card, ControlCard)

xadmin列表页显示

登录xadmin后台后页面显示

学生成绩表编辑页面

银行卡账户使用inlines关联过来的页面显示

原文地址:https://www.cnblogs.com/jason89/p/10549305.html

时间: 2024-11-08 23:24:00

django-35.xadmin注册表信息的相关文章

从Windows系统服务获取活动用户的注册表信息(当前活动用户的sessionId. 当前活动用户的 hUserToken)

首先,对“活动用户”的定义是,当前拥有桌面的用户.对于Windows XP及其以后的系统,即使是可以多个用户同时登录了,拥有桌面的也仅仅只有一个. 如果系统级服务调用Windows API来获取注册表键值的时候,直接以HKEY_CURRENT_USER为参数,则取到的并不是活动用户的注册表信息,而是系统用户的注册表信息,即,位于HKEY_LOCAL_MACHINE之下的.那么如何以系统服务的身份获取活动用户(真正的HKEY_CURRENT_USER)之下的注册表信息呢?主要有以下这么几步: 系统

注册表信息中的文件不小心误删除了怎么办

最近我的电脑有些问题,反正各种各样的问题都是存在的,一会是开机启动项 太多了,一会又是这个功能出现了故障,那个功能出现点故障什么的,于是就 想要重装系统了,于是找自己的一个哥们儿咨询了一下,想要让他帮我装一下 电脑,但是郁闷的是,节假日,这个哥们儿更是忙碌的不得了,于是就说让我 自己上网去研究一下,其实很多故障都是不需要重装系统的,只需要解决就可 以了,还给我推荐了不少的网站,让我去看里面的文章,如果实在不行的话, 等这两天过了,再过来帮我解决. 本来我是想等着他来的,但是电脑越发的不让人省心了

C#读取注册表信息

注册表是视窗系统的一个核心的数据库,在这个数据库中存放中与系统相关的各种参数,这些参数直接控制中系统的启动.硬件的驱动程序安装信息以及在视窗系统上运行的各种应用程序的注册信息等.这就意味着,如果注册表因为某些原因受到了破坏,轻者是视窗系统启动过程出现异常,重者就有可能导致整个系统的完全瘫痪.所以正确的认识注册表,及时的备份注册表,对于视窗用户就显得相当重要. C#就可以十分方便.简洁的开发出操作注册表的程序.单击"开始/运行",在"打开"的后面填入"reg

[转载]Python注册表信息丢失的解决方案

今天安装Python的模块时,安装失败,提示信息:Python version 2.7 required, which was not found in the registry. 原因在于Python在注册表中没有注册信息,需要手动添加: 1 # 2 # script to register Python 2.0 or later for use with win32all 3 # and other extensions that require Python registry settin

【转】C# Winform打包部署时添加注册表信息实现开机启动

使用VS自带的打包模块可以很方便的对项目进行打包部署,同时我们也可以在安装部署时操作注册表实现开机启动软件.具体实现如下: 1.添加安装部署项目后,鼠标右键安装项目->视图->注册表,HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run中 添加键值保存软件目录.    注意:默认的可能只有HKEY_CURRENT_USER\Software\[Manufacturer],没关系,我们依次添加以上的项即可.即:HKEY_C

如何读取注册表信息

引入:using Microsoft.Win32; 代码: RegistryKey rsg = null; rsg = Registry.LocalMachine.OpenSubKey("SOFTWARE\\isBIM\\isBIMQS2017\\Revit2016", false); string PackageLocation = rsg.GetValue("InstallationLocation").ToString(); 第二行的 true/false表示

CAD版本 注册表信息

AutoCAD2002 AutoCAD.Application.15 AutoCAD2003 AutoCAD.Application.15.1 AutoCAD2004 AutoCAD.Application.16 AutoCAD2005 AutoCAD.Application.16.1 AutoCAD2006 AutoCAD.Application.16.2 AutoCAD2007 AutoCAD.Application.17 AutoCAD2008 AutoCAD.Application.17

【Python】添加注册表信息脚本

http://wrox.cn/article/1004030/ # -*- coding: utf-8 -*- """ Created on Tue Jun 02 16:26:52 2015 @author: dapenghuang """ from _winreg import * # tweak as necessary version = sys.version[:3] installpath = sys.prefix regpath =

删除注册表信息

实现效果: 知识运用: Registry类的DeleteSubKeyTree //实现递归删除子项和任何子级子项 public void DeleteSubKeyTree (string subkey) Registry类的DeleteValue方法 //删除当前项的指定键名称的键/值对 public void DeleteValue (string name) 实现代码: private void Form1_Load(object sender, EventArgs e) { Registr