def join_course(self, course_id, code=None): from courses.models import Course, UserCourse # do this because users.py & courses.py import each other if code is not None: course = Course.objects.filter(code=code).first() elif course_id is not None: course = Course.filter(pk=course_id).first() else: return '' if course is None: return 'Invalid code' if UserCourse.objects.filter(user=self, course=course).first(): return 'You are already in the course' if course.teacher.pk == self.pk: return 'You teach that course' UserCourse(user=self, course=course).save() return course