django框架model模型和form表单,adminlte框架关联,实现select下拉选择框的使用

一、编写model模型

# 文件名models.py
from django.db import models

# Create your models here.

class TBest(models.Model):
    name = models.CharField(max_length=128)
    def __init__(self, *args, **kwargs):
        super(TBest, self).__init__(*args, **kwargs)

二、 编写forms表单

# 文件名forms.py
from login import models
from django.forms import ModelForm
from django import forms


class TBest(ModelForm):
    class Meta:
        model = models.TBest  # 对应的Model中的类
        fields = "__all__"  # 字段,如果是__all__,就是表示列出所有的字段
        labels = {
            'name': "名称",
        }
        widgets = {
        # attrs表示css样式,select2是adminlte的插件
            'name': forms.Select(attrs={
                "class": "form-control select2",
                "multiple": "multiple",
                "data-placeholder": "Select a State",
                "style": "width: 100%;",
            }),
        }
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.fields["name"].widget.choices=models.TBest.objects.all().values_list("id", "name")

三、编写view视图层

from .forms import TBest
from django.views import View
from django.shortcuts import render, redirect

class TestDal(View):
    def get(self, request, *args, **kwargs):
        form = TBest()
        return render(request, 'login/test.html', locals())

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

        # request.session["email"] = User.objects.filter(username=request.POST.get("username")).email
        return redirect("login:TestDal")

四、编写urls路由

# urls.py
from login import views
from django.urls import path
from django.urls import include

app_name = 'login'

urlpatterns = [
    path('TestDal/', views.TestDal.as_view(), name="TestDal"),
]

五、添加数据

在这里插入图片描述

六、编写静态页面

拷贝css、js插件到指定目录

<!-- test.html页面

-->

<!-- 
在head标签添加css样式
 -->
<!-- Select2 -->
  <link rel="stylesheet" href="{% static 'AdminLTE/plugins/selec2/css/select2.min.css' %}">
  <link rel="stylesheet" href="{% static 'AdminLTE/plugins/select2-bootstrap4-theme/select2-bootstrap4.min.css' %}">


<div class="col-md-12">
     <form action="{% url 'login:TestDal' %}" method="post">{% csrf_token %}
       <div class="form-group">
           {{ form.name.label }} {{ form.name }}
       </div>
         <button type="submit" class="btn btn-info">Sign in</button>
         <button type="submit" class="btn btn-default float-right">Cancel</button>
     </form>
 </div>
<!-- 
在底部添加js样式
 --> 
<script src="{% static 'AdminLTE/plugins/select2/js/select2.full.min.js' %}"></script>
<script>
  $(function () {
      //Initialize Select2 Elements
      $('.select2').select2()

      //Initialize Select2 Elements
      $('.select2bs4').select2({
          theme: 'bootstrap4'
      })
  })
</script> 

七、效果图

在这里插入图片描述

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值