Django Обзор / Оптимизация / Рекомендации

Я изучал Django в течение последних нескольких недель и работал над некоторыми проектами в качестве практики и для изучения приложений реального мира.

У меня есть страницы (на фото ниже), которые показывают список студентов и преподавателей, назначенных этим студентам, на этих страницах у меня есть несколько форм для выполнения различных действий, таких как выбор студентов, создание новых студентов, редактирование студента, назначение преподавателя и т.д.

Я прикрепил свой код ниже, все работает нормально, но я не могу отделаться от ощущения, что это крайне неэффективный способ сделать это. Хотелось бы услышать мысли и отзывы людей. Я всегда готов учиться!

Экран учеников (Не обращайте внимания на красные квадраты, они просто закрывают названия и логотипы школ): Students Page

View.py

Students.html

Вы использовали слишком много повторений в своем коде. Сделайте оператор if функцией, вызовите его с необходимыми аргументами и используйте это значение. Вместо того чтобы использовать код снова и снова.

def check(request,Student,Teacher,pk,task):
 if task in request.POST:
        student_queryset = Student.objects.all().filter(creationuser__userschool=request.user.userschool)
        all_teachers_queryset = Teacher.objects.all().filter(creationuser__userschool=request.user.userschool)
        teacher_queryset = ''
        search_term = ""
        view_state = ''
        new_teacher_state = ''
        form = TeacherForm()
        selected = request.GET['select_student']
        selected_student = get_object_or_404(Student, pk=selected)
        teacher_selected = request.POST.getlist('assign_teacher')
        teacher = get_object_or_404(Teacher, pk__in=teacher_selected)
        selected_student.teachers.add(teacher)
        selected_student.save()

Это просто пример, и может иметь ошибки, это просто, чтобы показать вам. измените его по своему желанию

Вернуться на верх