Django Обзор / Оптимизация / Рекомендации
Я изучал Django в течение последних нескольких недель и работал над некоторыми проектами в качестве практики и для изучения приложений реального мира.
У меня есть страницы (на фото ниже), которые показывают список студентов и преподавателей, назначенных этим студентам, на этих страницах у меня есть несколько форм для выполнения различных действий, таких как выбор студентов, создание новых студентов, редактирование студента, назначение преподавателя и т.д.
Я прикрепил свой код ниже, все работает нормально, но я не могу отделаться от ощущения, что это крайне неэффективный способ сделать это. Хотелось бы услышать мысли и отзывы людей. Я всегда готов учиться!
Экран учеников (Не обращайте внимания на красные квадраты, они просто закрывают названия и логотипы школ):
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()
Это просто пример, и может иметь ошибки, это просто, чтобы показать вам. измените его по своему желанию