文章目录
靓号管理
已学部分
无注释纯享
models.py
class PrettyNum(models.Model):
"""靓号表"""
mobile = models.CharField(verbose_name="手机号",max_length=11)
price = models.IntegerField(verbose_name="价格",null=True,blank=True)
# 允许为空
level_choices = ((5, "ssr"),(4,'s'),(3,'a'),(2,'b'),(1,'c'))
level = models.SmallIntegerField(verbose_name="等级",choices=level_choices,default=5)
status_choices = ((1, "占用"), (2, "未占用"))
status = models.SmallIntegerField(verbose_name="状态",choices=status_choices,default=2)
url.py
from django.contrib import admin
from django.urls import path
from bm01 import views
urlpatterns = [
# 靓号管理
path('plist/', views.plist),
path('padd/', views.prety_add),
path('pretty/<int:dpid>/del', views.pretty_delete),
path('pretty/<int:epid>/edit', views.pretty_edit),
]
views.py
def plist(request):
# 相当于select * from 表 order by level desc;
plist = models.PrettyNum.objects.all().order_by("-level")
return render(request, 'pretty_list.html', {
"plist": plist})
from django import forms
class PModelForm(forms.ModelForm):
class Meta:
# fields = ["model", "price", "level", "status"]
fields = '__all__'
model = models.PrettyNum
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
for name, field in self.fields.items():
field.widget.attrs = {
"class": "form-control", "placeholder": field.label}
def prety_add(request):
if request == "GET":
pform = PModelForm()
return render(request, 'pretty_add.html', {
'form': pform})
pform = PModelForm(request.POST)
if pform.is_valid():
pform.save()
return redirect("/plist/")
return render(request, 'pretty_add.html', {
'form': pform})
def pretty_edit(request, epid):
p_obj = models.PrettyNum.objects.filter(id=epid).first()
if request.method == "GET":
pform = PModelForm(instance=p_obj)
return render(request, 'pretty_add.html', {
'form': pform})
pform = PModelForm(data=request.POST, instance=p_obj)
if pform.is_valid():
pform.save()
return redirect("/plist/")
return render(request, 'pretty_add.html', {
'form': pform})
def pretty_delete(request, dpid):
models.PrettyNum.objects.filter(id=dpid).delete()
return redirect("/plist/")
pretty_list.html
{% extends 'moban.html' %}
{% block mbname %}
<div>
<div class="container">
<div class="bs-example" data-example-id="panel-without-body-with-table">
<div class="panel panel-default">
<!-- Default panel contents -->
<div class="panel-heading"><span class="glyphicon glyphicon-list" aria-hidden="true"></span> 部门列表
</div>
<!-- Table -->
<table class="table table-bordered">
<thead>
<tr>
<th>ID</th>
<th>号码</th>
<th>价格</th>
<th>级别</th>
<th>状态</th>
<th>操作</th>
</tr>
</thead>
<tbody>
{% for i in plist %}
<tr>
<td>{
{ i.id }}</td>
<td>{
{ i.mobile }}</td>
<td>{
{ i.price }}</td>
<td>{
{ i.level }}</td>
<td>{
{ i.status }}</td>
<td>
<a class="btn btn-primary btn-xs" href="/pretty/{
{ i.id }}/edit">编辑</a>
<a class="btn btn-danger btn-xs" href="/pretty/{
{ i.id }}/del">删除</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
</div>
</div>
{% endblock %}
pretty_add.html
{% extends 'moban.html' %}
{% block mbname %}
<div>
<div class="container">
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">靓号添加</h3>
</div>
<div class="panel-body">
<div class="container">
<form class="form-horizontal" method="post" novalidate>
{% csrf_token %}
{% for field in form %}
<div class="form-group">
<label class="col-sm-2 control-label">{
{ field.label }}: </label>
<div class="col-sm-8">
{
{ field }}
{
{ field.errors.0 }}
</div>
</div>
{% endfor %}
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-primary">提交</button>