You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

57 lines
1.8 KiB

from django.shortcuts import render, redirect
from django.views.generic.base import View
from apps.goods.models import *
from apps.goods.forms import *
# Create your views here.
class GoodCateView(View):
def get(self, request):
cates = GoodsCategory.objects.all()
return render(request, 'goods/cate_index.html', {'cates': cates})
def post(self, request):
pass
class GoodCateAddView(View):
def __init__(self):
self.alist = []
def bind_data(self, data, _id, n):
if id == 0:
data = data.filter(parent__isnull=True)
else:
data = data.filter(parent=_id)
for d in data:
print(d)
self.alist[d.id] = self.space_length(n) + d.name
self.bind_data(d, d.id, n + 2)
return self.alist
def space_length(self, i):
space = ''
for j in range(1, i):
space += "  "
return space + "|--"
def get(self, request):
form_obj = GoodsCateForm()
return render(request, 'goods/cate_add.html', {'form_obj': form_obj})
def post(self, request):
form_obj = GoodsCateForm(request.POST, request.FILES)
if form_obj.is_valid():
name = request.POST.get('name', '')
cates = GoodsCategory.objects.filter(name=name)
if cates:
info = '分类已经存在'
else:
cate = GoodsCategory.objects.create(**form_obj.cleaned_data)
return redirect('cate_index')
return render(request, 'goods/cate_add.html', {'form_obj': form_obj, 'info': info})
else:
errors = form_obj.errors
print(errors)
return render(request, 'goods/cate_add.html', {'form_obj': form_obj, 'info': errors})