python - 弹出窗口 -表单提交 - 随机单号生成


1.  静态页面

{% extends 'layout.html' %}

{% block content %}

    
class="container">

class="panel panel-default">
class="panel-heading"> class="glyphicon glyphicon-th-list" aria-hidden="true"> 表单列表
class="table table-bordered"> {% for item in queryset %} {% endfor %}
ID 订单号 商品名称 价格 状态 用户 操作
"row">{{ item.id }} {{ item.oid }} {{ item.title }} {{ item.price }} {{ item.get_status_display }} {{ item.user.username }} "" class="btn btn-primary btn-xs">编辑 "" class="btn btn-danger btn-xs">删除
class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
class="modal-dialog" role="document">
class="modal-content">
class="modal-header">

class="modal-title" id="myModalLabel"> 新建表单

class="modal-body">
"post" id="saveform" novalidate> {% for field in form %}
class="form-group"> {{ field }} "color:red" class="error-msg">
{% endfor %}
class="modal-footer">
{% endblock %} {% block js %} {% endblock %}

2.  views.py

from django.shortcuts import render,redirect

# 随机事件组合
import random
from datetime import datetime

# 免除认证 发送消息
from django.views.decorators.csrf import csrf_exempt

# 返回json
from django.http import JsonResponse


from app import models
from app.utils.bootsrap import BootstrapModelForm


class OrderModelForm(BootstrapModelForm):
    class Meta:
        model = models.Order
        #fields = '__all__'
        exclude = ['oid']
'''表单列表'''
def order_list(request):

    queryset = models.Order.objects.all().order_by('-id')

    form = OrderModelForm()

    context = {
        'form': form,
        'queryset': queryset,
    }

    return render(request, 'order_list.html', context )


''' 表单 添加数据 '''
@csrf_exempt
def order_add(request):
    form = OrderModelForm(data=request.POST)
    if form.is_valid():
        # 字段中少一个订单号, 需要动态生成一个

        form.instance.oid = datetime.now().strftime('%Y%m%d%H%M%S') + str(random.randint(10000,99999))
        # 验证成功
        form.save()
        data_dict = {'status': True}
        return JsonResponse(data_dict)

    # 验证失败
    data_dict = {'status': False, 'error': form.errors}
    return JsonResponse(data_dict)


3.  数据库 model.py

'''商品订单'''
class Order(models.Model):
    oid = models.CharField(verbose_name='订单号', max_length=64)
    title = models.CharField(verbose_name='商品名称', max_length=64)
    price = models.IntegerField(verbose_name='价格')

    status_choices = (
        (1, '待支付'),
        (2, '已支付'),
    )

    status = models.SmallIntegerField(verbose_name='状态', choices=status_choices, default=1)

    user = models.ForeignKey(verbose_name='用户', to='Admin', on_delete=models.CASCADE)

相关