CMDB 基础 3

基于form表单的增删改查

 

项目urls.py

 

from django.conf.urls import url

from host import views

 

urlpatterns = [

    url(r'list$',views.List.as_view()),

    url(r'add$', views.Add.as_view()),

    url(r'update/(\d+)/', views.Update.as_view()),

    url(r'del', views.Del.as_view()),

]

 

form_class.py

 

from django.forms import Form

from django.forms import fields

from django.forms import widgets

from django.core.exceptions import ValidationError

from host import models

 

class HostForm(Form):

    hostname=fields.CharField(

        required=True,

        widget=widgets.TextInput(attrs={'class': 'c1'})

    )

 

    cpu=fields.CharField(

        required=True,

        widget=widgets.TextInput(attrs={'class': 'c1'})

    )

 

    mem=fields.CharField(

        required=True,

        widget=widgets.TextInput(attrs={'class': 'c1'})

    )

 

    speed=fields.CharField(

        required=True,

        widget=widgets.TextInput(attrs={'class': 'c1'})

    )

 

    network=fields.CharField(

        required=True,

        widget=widgets.TextInput(attrs={'class': 'c1'})

    )

 

    lei=fields.CharField(

        required=True,

        widget=widgets.TextInput(attrs={'class': 'c1'})

    )

 

    source_id=fields.ChoiceField(

        required=True,

        choices=[],

        widget=widgets.Select(attrs={'class': 'c1'})

    )

 

    def __init__(self,*args, **kwargs):

        super(HostForm,self).__init__(*args, **kwargs)

        self.fields['source_id'].choices=models.Source.objects.values_list('id','name')

 

views.py

 

from django.shortcuts import render,redirect,HttpResponse

from django.views import View

from host import models

from utils import form_class

 

class List(View):

    def post(self,request,*args,**kwargs):

        pass

 

    def get(self, request, *args, **kwargs):

        host_lsit=models.Host.objects.all()

        return render(request,'host.html',locals())

 

class Add(View):

    def post(self,request,*args,**kwargs):

        form=form_class.HostForm(data=request.POST)

        if form.is_valid():

            models.Host.objects.create(**form.cleaned_data)

            return redirect('/host/list')

        else:

            return render(request,'add.html',locals())

 

    def get(self, request, *args, **kwargs):

        form=form_class.HostForm()

        return render(request,'add.html',locals())

 

class Update(View):

    def post(self,request,reg):

        form=form_class.HostForm(data=request.POST)

        if form.is_valid():

            models.Host.objects.filter(id=reg).update(**form.cleaned_data)

            return redirect('/host/list')

        else:

            return render(request,'add.html',locals())

 

    def get(self, request, reg):

        obj=models.Host.objects.filter(id=reg).first()

        form=form_class.HostForm(

            initial={'hostname':obj.hostname,

                     'cpu':obj.cpu,

                     'mem':obj.mem,

                     'speed':obj.speed,

                     'eth1_network':obj.eth1_network,

                     'ecsname':obj.ecsname,

                     'source_id':obj.source_id,

                    }

        )

        return render(request,'update.html',locals())

 

 

 

class Del(View):

    def post(self,request,*args,**kwargs):

        pass

 

    def get(self, request, *args, **kwargs):

        get_id=int(request.GET.get('id'))

        models.Host.objects.filter(id=get_id).delete()

        return redirect('host/list')

 

add.html/update.html

 

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>增加页面</title>

</head>

<body>

<form  method="post" novalidate role="form">

    {% csrf_token %}

    <p id="hostname">阿里云主机名:{{ form.hostname }}{{ form.errors.hostname.0 }}</p>

    <p id="cup">CPU:{{ form.cpu }}{{ form.errors.cpu.0 }}</p>

    <p id="mem">内存/G:{{ form.mem }}{{ form.errors.mem.0 }}</p>

    <p id="speed">带宽/M:{{ form.speed }}{{ form.errors.speed.0 }}</p>

    <p id="ip">IP:{{ form.network }}{{ form.errors.network.0 }}</p>

    <p id="lei">来源类型:{{ form.lei }}{{ form.errors.lei.0 }}</p>

    <p id="source_id">所属区域:{{ form.source_id }}{{ form.errors.source_id.0 }}</p>

 

    <input type="submit" value="提交">

</form>

</body>

</html>

转载于:https://my.oschina.net/u/3803568/blog/3002486

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值