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
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})
|
|
|