Django和mysql简单交互,视图编辑

承接自我的上一篇博客:https://blog.csdn.net/oliverkingli/article/details/79705061

我们今天继续完善相关页面关于数据表的可视化操作:

我们先增加一个在Student页面下可以选择Grades的具体对象的功能:

修改models.py

from django.db import models

# Create your models here.

class Grades(models.Model):
	g_name = models.CharField(max_length=20)
	g_date = models.DateTimeField()
	g_girlnum = models.IntegerField()
	g_boynum = models.IntegerField()
	isDelete = models.BooleanField(default=False)
	def __str__(self):
		return self.g_name


class Students(models.Model):
	s_name = models.CharField(max_length=20)
	s_gender = models.BooleanField(default=True)
	s_age = models.IntegerField()
	s_contend = models.CharField(max_length=20)
	isDelete = models.BooleanField(default=False)
	# 关联外界
	s_grade = models.ForeignKey("Grades", on_delete=models.CASCADE)
	
	def __str__(self):
		return self.s_name
	
然后在admin.py里加入:



接下来我们对可视化界面进行一些完善,并且添加上中文支持:

完整的admin.py:

from django.contrib import admin

# Register your models here.
# 从当前导入模型
from .models import Grades,Students

class StudentsInfo(admin.TabularInline):
	model = Students
	extra = 2

# 进行注册
class GradesAdmin(admin.ModelAdmin):
	inlines = [StudentsInfo]
	# 列表属性添加
	# 列表
	list_display = ['pk', 'g_name', 'g_date', 'g_girlnum', 'g_boynum', 'isDelete']
	# 过滤器
	list_filter = ['g_name']
	# 搜索
	search_fields = ['g_name']
	# 分页
	list_per_page = 2
	
	# 添加,修改属性,这两个不能同时使用
	# 规定属性的先后顺序
	# fields= ['g_girlnum', 'g_boynum', 'g_date', 'g_name', 'isDelete']
	# 给属性分组
	fieldsets = [
		("num", {"fields":["g_girlnum", "g_boynum"]}),
		("base", {"fields":["g_name", "g_date", "isDelete"]})
	]


class StudentsAdmin(admin.ModelAdmin):
	def gender(self):
		if self.s_gender:
			return "男"
		else:
			return "女"

	def delete(self):
		if self.isDelete:
			return "删"
		else:
			return "留"

	def name(self):
		if self.s_name:
			return self.s_name
	def age(self):
		if self.s_age:
			return self.s_age
	def contend(self):
		if self.s_contend:
			return self.s_contend
	
	# 设置页面列的名称
	gender.short_description = "性别"
	delete.short_description = "备注"
	name.short_description = "姓名"
	age.short_description = "年龄"
	contend.short_description = "描述"
	
	# 列表属性添加
	# 列表
	list_display = ['pk', name, gender, age, contend, delete]
	# 过滤器
	list_filter = ['s_name']
	# 搜索
	search_fields = ['s_name']
	# 分页
	list_per_page = 2

	# 设置操作执行的布局
	actions_on_top = False
	actions_on_bottom = True
	
	# 添加,修改属性,这两个不能同时使用
	# 规定属性的先后顺序
	# fields= ['g_girlnum', 'g_boynum', 'g_date', 'g_name', 'isDelete']
	# 给属性分组
	fieldsets = [
		("num", {"fields":["s_name", "s_contend"]}),
		("base", {"fields":["s_age", "s_gender", "isDelete"]})
	]


admin.site.register(Grades, GradesAdmin)
admin.site.register(Students, StudentsAdmin)




下面我们使用视图来修改站点的可视化界面:

在myapp1文件夹下的view.py中加入:

from django.shortcuts import render

# Create your views here.
from django.http import HttpResponse

def index(request):
	return HttpResponse("Django is testing.")
在项目根目录的test1里面的urls.py中加入:

"""test1 URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/2.0/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  path('', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.urls import include, path
    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.conf.urls import url,include
urlpatterns = [
	url(r'^admin/', admin.site.urls),
	url(r'^', include('myapp1.urls')),
	]

再在myapp1文件下创建urls.py

from django.conf.urls import url
from . import views

urlpatterns = [
	url(r'^$', views.index),
	]


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值