@ooker

Как сократить код джанго?

Добрый день! Я новичко не могу наити варианты.
На сайте сделан фронт, клиент выбирает деятельность и выбор попадает в обертку form. В обертке нет возможности разместить формы джанго. Сохраняю по input name. Как можно оптимизировать код

class MasterProfile(generic.View):

    def post(self, request):
        razdel1 = HairCut.objects.all()
        uslugi_haircut = HaircutUslugi()
        razdel2 = SpaCentre.objects.all()
        ctx = {
            'razdel1': razdel1,
            'uslugi_haircut': uslugi_haircut,
            'razdel2': razdel2
        }
        if request.method == "POST":
            data = HairCut()
            data.deyatelnost1 = request.POST.get('deyatelnost1')
            data.save()
            data = HaircutUslugi()
            data.usluga1 = request.POST.get('usluga1')
            data.save()
            data = SpaCentre()
            data.deyatelnost2 = request.POST.get('deyatelnost2')
            data.save()
            data = Cosmetologia()
            data.deyatelnost3 = request.POST.get('deyatelnost3')
            data.save()
            data = Makeup()
            data.deyatelnost4 = request.POST.get('deyatelnost4')
            data.save()
            data = Nails()
            data.deyatelnost5 = request.POST.get('deyatelnost5')
            data.save()
            data = Tatoo()
            data.deyatelnost6 = request.POST.get('deyatelnost6')
            data.save()
            data = Massage()
            data.deyatelnost7 = request.POST.get('deyatelnost7')
            data.save()
            data = Depilation()
            data.deyatelnost8 = request.POST.get('deyatelnost8')
            data.save()
        return render(request, "masterregistration/masterprofilestart.html", ctx)

    def get(self, request,):
        razdel1 = HairCut.objects.all()
        uslugi_haircut = HaircutUslugi()
        razdel2 = SpaCentre.objects.all()
        ctx = {
            'razdel1': razdel1,
            'uslugi_haircut': uslugi_haircut,
            'razdel2': razdel2
        }
        return render(request, "masterregistration/masterprofilestart.html", ctx)

Спасибо за ответ
  • Вопрос задан
  • 119 просмотров
Пригласить эксперта
Ответы на вопрос 1
@bituke
Писать бизнес-логику в вьюшке приложения, в принципе уже крупная ошибка большинства новичков.
Всю логику запросов-ответов прописываем в отдельном файле, импортируем его в вьюшку и используем с помощью определенных переменных.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы